none
Existe algum meio de inserir um anexo em um item de uma Document Library??? RRS feed

  • 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 Snippet
    SPDocumentLibrary doc = (SPDocumentLibrary)web.Lists["docTeste"];

     

     

    e vi que dah pra pegar o item e usar o:

     

           

    Code Snippet
    SPListItem 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.

    terça-feira, 17 de junho de 2008 21:24

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.

     

    sexta-feira, 20 de junho de 2008 18:54

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

    quarta-feira, 18 de junho de 2008 13:20
  • 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.

    quarta-feira, 18 de junho de 2008 13:29
  • Maurício,

     

    Porque então, ao invés de usar uma Document Library, você não usa uma Custom List se você realmente precisa anexar um arquivo na propriedade Attachements ??

     

    Abraços.

    sexta-feira, 20 de junho de 2008 18:49
  • 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.

     

    sexta-feira, 20 de junho de 2008 18:54