Como subir documentos con el servicio REST en SharePoint 2010

Otra de las funcionalidades clave, con respecto a uso de servicios REST en SharePoint 2010, y siguiendo con el post: Listar, añadir, modificar y borrar información con REST en SharePoint 2010, es la posibilidad de subir un documento, a una biblioteca de documentos.

Esta funcionalidad, debe realizarse desde un cliente (en este caso voy a hacerlo desde una aplicación de consola). Parto de la anterior aplicación que montamos en mi anterior post,  lo único que vamos a realizar es añadirle un método más, parar poder subir documentos.

Este seria el método:

static void UploadDocument()
{
	using (FileStream file = File.Open(@"C:\TEMP\Documento.txt", FileMode.Open))
	{
		//recupera la informacion del servicio 
		DevPortalHomeDataContext dataContext = new DevPortalHomeDataContext(new Uri("http://servidor/_vti_bin/listdata.svc/"));
		dataContext.Credentials = CredentialCache.DefaultNetworkCredentials; 
		//declara las caracteristicas del el documento
		string path = "/Documents/Documento.txt";
		string Name = "Documento";
		string contentType = "plain/text";
		string Title = "Documento";
		//crea el documento
		DocumentsItem documentItem = new DocumentsItem()
		{
			ContentType = contentType,
			Name = Name,
			Path = path,
			Title = Title
		};
		//sube el documento al la biblioteca
		dataContext.AddToDocuments(documentItem);
		dataContext.SetSaveStream(documentItem, file, false, contentType, path);
		dataContext.SaveChanges();
		Console.WriteLine("Documento subido correctamente");
	} 
}

Para su correcto funcionamiento, hay que crear un archivo de texto plano en C:\TEMP\ llamado Documento.txt.

Se puede añadir para un correcto funcionamiento de la aplicación, control de excepciones…   ya que si existe algún problema, se produzca una excepción de tipo System.Data.Services.Client.DataServiceRequestException.

Nota: El método DataServiceContext.SetSaveStream únicamente está accesible desde el Framework 4.0.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *