Skip Ribbon Commands
Skip to main content

Como copiar documentos desde el computador local a una librería
Codigo

Copiar documentos desde el computador local a una librería de WSS/SPS tampoco es difícil; mire como hacerlo con código
Autor: Gustavo

La siguiente función copia un documento desde un directorio local a una librería de WSS/SPS.

  public void CopiarDocumento()
  {
     try
     {
        string NombreDocumento = "gavd.doc";
        string RutaDocumento = "c:\\temp\\" + NombreDocumento;
        System.IO.FileStream objStream = new
           System.IO.FileStream(RutaDocumento, System.IO.FileMode.Open, System.IO.FileAccess.Read);
        System.IO.BinaryReader objReader = new System.IO.BinaryReader(objStream);
        byte [] arrFileBytes = objReader.ReadBytes((int)objStream.Length);
        objReader.Close();
        objStream.Close();

        string LibreriaDestino = "http://[servidor]/sites/[sitio]/[libreria]/";
        string Destino = LibreriaDestino + NombreDocumento;

        System.Net.WebClient objWebClient = new System.Net.WebClient();
        objWebClient.Credentials = System.Net.CredentialCache.DefaultCredentials;
        objWebClient.UploadData(Destino, "PUT", arrFileBytes);

        //Todo ha ido bien
     }
     catch(Exception ex)
     {
        //Nada ha ido bien
     }
  }

Los nombres del Documento, su ruta y la LibreriaDestino están fijos en el código, pero no es difícil de crearlos dinámicamente.

La función se puede cambiar para copiar todos los documentos desde un directorio a una o varias librerías, utilizando un lazo que examina cada documento del directorio, extrae su nombre y contenido y luego lo copia en la librería (“subida de documentos en masa”).

La autenticación esta limitada al usuario que esta usando Internet Explorer (por el uso de las credenciales que IE tiene en ese momento), pero utilizando un Impersonador se puede hacer copias de documentos sin tener restricciones.