none
Serviço Rest stream file RRS feed

  • Pergunta

  • Olá

    Estou querendo fazer um serviço rest para upload e download de arquivos.

    Vão ser N tipos de arquivos que serão feito upload/download.

    É possivel fazer isto com rest ?

    sábado, 15 de setembro de 2012 12:08

Respostas

Todas as Respostas

  • Felipe não trabalho muito com WCF, mais existe uns projetos mostrando como implementar upload/download com WCF, veja:

    http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP
    http://www.codeproject.com/Articles/37651/WCF-Large-File-Download-Upload-Service
    http://www.codeproject.com/Articles/20364/Progress-Indication-while-Uploading-Downloading-Fi

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    sábado, 15 de setembro de 2012 12:25
  • Cara,
    Muito obrigado pelos links, eu dei uma olhada, mas eu estou usando o Rest Template para o WCF.


    Conhece algum exemplo com REST ?
    sábado, 15 de setembro de 2012 12:40
  • Cara,
    Muito obrigado pelos links, eu dei uma olhada, mas eu estou usando o Rest Template para o WCF.


    Conhece algum exemplo com REST ?
    Na pagina code.msdn.microsoft existe um, veja:

    http://code.msdn.microsoft.com/windowsdesktop/Upload-files-using-a-REST-13f16af2

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Marcado como Resposta Felipe Gonzales sexta-feira, 30 de novembro de 2012 11:53
    sábado, 15 de setembro de 2012 13:10
  • estou usando o seguinte código para transferir arquivos com WCF

    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IUploadService" in both code and config file together.
        [ServiceContract]
        public interface IUploadService
        {
            [OperationContract]
            void UploadFile(RemoteFileInfo request);    
        }
    
        [MessageContract]
        public class RemoteFileInfo : IDisposable
        {
            [MessageHeader(MustUnderstand = true)]
            public string FileName;
    
            [MessageHeader(MustUnderstand = true)]
            public long Length;
    
            [MessageBodyMember(Order = 1)]
            public System.IO.Stream FileByteStream;
    
            public void Dispose()
            {
                if (FileByteStream != null)
                {
                    FileByteStream.Close();
                    FileByteStream = null;
                }
            }
        }

    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "UploadService" in code, svc and config file together. public class UploadService : IUploadService { public void UploadFile(RemoteFileInfo request) { FileStream targetStream = null; Stream sourceStream = request.FileByteStream; string uploadFolder = ConfigurationManager.AppSettings["destino"]; if (!Directory.Exists(uploadFolder)) Directory.CreateDirectory(uploadFolder); string filePath = Path.Combine(uploadFolder, request.FileName); using (targetStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) { //read from the input stream in 65000 byte chunks const int bufferLen = 65000; byte[] buffer = new byte[bufferLen]; int count = 0; while ((count = sourceStream.Read(buffer, 0, bufferLen)) > 0) { // save to output stream targetStream.Write(buffer, 0, count); } targetStream.Close(); sourceStream.Close(); }

    }

    }

    • Editado Pablotdv quarta-feira, 31 de outubro de 2012 17:19
    • Sugerido como Resposta Pablotdv terça-feira, 6 de novembro de 2012 18:13
    quarta-feira, 31 de outubro de 2012 17:17