Olá Pessoal,
Mais uma dica aqui para trabalharmos com o SharePoint, agora manipulando os anexos dos itens de uma lista do SharePoint com c#.
INSERIR UM ANEXO AO ITEM NO SHAREPOINT
Para inserirmos um anexo, o processo é bem simples e no caso, vamos utilizar o recurso de FileUpload do Asp.NET para carregarmos o arquivo para o SharePoint.
Explicando o código…
Vamos usar um objeto Stream para carregar nosso arquivo para o SharePoint, usando o método de Add do SPAttachmentsCollection.
Primeiro fazemos uma validação no FileUpload para verificar se existe um arquivo, e após isso vamos jogar o conteúdo do stream do FileUpload nodentro do nosso Stream.
Após isso, vamos ler o conteúdo do stream convertendo-o em um array de bytes e jogamos dentro do objeto attachmentContent que é o nosso array destino.
Tendo nosso array de bytes conseguimos então adicioná-lo como anexo no nosso item chamdno o evento de Add do SPAttachmentsCollection, passando para o método o nome do arquivo e o nosso array de bytes.
Ao final, chamamos o método Update do nosso item (SPListItem.Update()) e finalizamos a ação.
Pronto! agora nosso arquivo já está como anexo do nosso item!
LENDO OS ANEXOS DO MEU ITEM DE LISTA
Para fazermos a leitura dos anexos o processo é bem simples e utilizaremos o array de anexos SPAttachmentsCollection para fazer essa varredura.
Explicando o código…
De forma simples, estamos usando um repetidor for para varrer o array de anexos do nosso item. O código item.Attachments[i].ToString() retorna apenas o nome do documento anexo e nao o caminho todo nem o próprio documento em si.
Para acessarmos o documento, precisamos pegar sua url também, e conseguimos isso através do código item.Attachments.UrlPrefix , assim juntando o UrlPrefix com o Attachment[i].ToString() temos a url completa do nosso anexo.
Para recuperarmos o arquivo propriamente dito como um SPFile, basta fazermos o seguinte:
SPFile spFile = item.Web.GetFile(Item.Attachments.UrlPrefix + Item.Attachments[i]);
byte[] binFile = spFile.OpenBinary();
Assim conseguimos o arquivo em SPFile e também o array de bytes com o conteúdo do anexo.
Bom, essa é uma dica simples e rápida de como podemos manipular anexos de item de lista no SharePoint.
Se tiverem dúvidas, sugestões deixe seu comentário!
Até a próxima!
Olá Douglas, estou procurando uma forma de colocar um arquivo anexado em uma lista num e-mail via workflow. Tem como ?