Geral SharePoint

Manipulando anexos de um item de Lista do SharePoint

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.

print-14

 

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.

print-15

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!

Anúncios

2 comentários

    1. Olá Marcos!

      Desculpe a demora na resposta, mas então, é que na verdade o Fluxo de Trabalho não entende que são anexos, apenas se tem anexos ou não, por isso o “TRUE” quando há um anexo e um “FALSE” quando não há.

      Vou verificar se existe uma forma de listar os anexos e enviá-los via Workflow do SharePoint Designer e te mando por email pode ser? Me manda um email com seus contatos que te respondo lá, meu e-mail é douglas.romao@quicked.com.br

      Grande Abraço!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s