Usuário com melhor resposta
Existe algum meio de inserir um anexo em um item de uma Document Library???

Pergunta
-
Boa noite pessoal,
estou trabalhando em um projeto e uma de minhas tarefas eh descobrir um meio de anexar um arquivo em um item de uma Document Library...
instanciei a DocumentLibrary
Code SnippetSPDocumentLibrary doc = (SPDocumentLibrary)web.Lists["docTeste"];e vi que dah pra pegar o item e usar o:
Code SnippetSPListItem item = doc.GetItemById(2);
item.Attachments.Add(fileName, contents);Porem ele soh exibe a seguinte mensagem de erro: " valor não recai no intervalo esperado."
utilizo o mesmo metodo para inserir o anexo em uma custom list e funciona perfeitamente...
Pesquisando pela internet, parece que nao eh possivel inserir diretamente o anexo a um item de uma document library...
alguem por acaso teria uma sugestao de como posso fazer isso???
obrigado!
abs.
Respostas
-
eh por que eh uma lista que contem curriculos de candidatos a vagas... o sistema insere na doc library automaticamente os curriculos que sao enviados no formato correto e os que estao em formato incorreto sao devolvidos juntamente com um template para a correcao...
dai todo o processo de recrutamento eh feito a partir desse curriculo... o que preciso fazer eh inserir anexos, tais como... as provas que o candidato fez... os resultados dos testes, etc....
por isso usamos uma document library...
... soh complementando... resolvi o problema com uma custom action e outra document library... esta funcionando perfeitamente...
obrigado pelas dicas Andre.
Todas as Respostas
-
Olá Maurício,
Não é possível inserir um arquivo anexo em um DocumentLibrary. No entatno, uma DocumentLibrary já é um lista preparada para receber Upload de documentos.
Devo crer que você está tentando fazer um Upload de um documento para a esta document library. Se sim, a maneira para fazer upload é um pouco diferente.
SPSite site = new SPSite("http://localhost/");
SPWeb web = site.OpenWeb();
SPDocumentLibrary lib = (SPDocumentLibrary)web.Lists["Shared Documents"];
//Neste caso, estou simulando um upload. Para isso, é necessário convertê-lo para um array do tipo Byte.
Byte[] doc = System.IO.File.ReadAllBytes(@"C:\YourDocument.doc");
//Neste momento, será criado um novo item em sua Library. Caso já existe um com o mesmo nome, uma expection será lançada.
SPFile file = lib.RootFolder.Files.Add("YourDocument.doc", doc);
Espero que ajude.
Não esqueça de avaliar este post como útil, caso tenha ajudado !!!
Abraço
-
ola Andre,
o que eu precisava fazer mesmo era inserir um anexo, do mesmo jeito que acontece com as Custom Lists... mas desisti, farei de outro jeito...
eu criei uma nova doc library e vou inserir os documentos nela e colocarei uma coluna onde sera gravado o ID do documento que necessita ter anexo, ai atraves de uma web part que estou desenvolvendo eu retornarei todos os anexos referentes ao documento usando CAML e exibirei em um grid que contera um link para acessar os anexos...
nao sei se eh a melhor das solucoes... mas eh a unica coisa que dah pra fazer com o pouco tempo que tenho!
obrigado pela ajuda.
-
-
eh por que eh uma lista que contem curriculos de candidatos a vagas... o sistema insere na doc library automaticamente os curriculos que sao enviados no formato correto e os que estao em formato incorreto sao devolvidos juntamente com um template para a correcao...
dai todo o processo de recrutamento eh feito a partir desse curriculo... o que preciso fazer eh inserir anexos, tais como... as provas que o candidato fez... os resultados dos testes, etc....
por isso usamos uma document library...
... soh complementando... resolvi o problema com uma custom action e outra document library... esta funcionando perfeitamente...
obrigado pelas dicas Andre.