Como fazer upload de um arquivo para um serviço WCF?
-
09-06-2019 - |
Pergunta
Eu criei um serviço WCF para aceitar um arquivo e gravá-lo no disco.O front-end consiste em uma página com SWFUpload que trata do upload no lado do cliente.Aparentemente, SWFUpload publica os dados com um tipo de conteúdo de:multipart/form-data.
Eu acho que está tudo bem, mas no lado do serviço recebo um erro.O erro é "ProtocolException" esperando texto/xml.Tentei diferentes codificações de mensagens nas ligações, mas nada parece funcionar.
Como posso fazer upload deste arquivo usando multipart/form-data?
Solução
@jdiaz,
@JasonS está certo, para fazer upload do arquivo você precisa transferi-lo como um fluxo de bytes.Você precisa usar Transmissão WCF.Por exemplo, sobre como fazer upload de arquivo via WCF, consulte um artigo de http://kjellsj.blogspot.com
Outras dicas
O que você deseja usar é provavelmente MTOM, se você quiser que seja padrão.Usando isso, você pode ter mensagens MIME multiparts.
Você então terá que ler o arquivo como um fluxo e inseri-lo em um dos parâmetros da solicitação.
Pode ser que seu serviço WCF seja direcionado ao .NET Framework 3.5 e seu IIS esteja em execução no .NET Framework 4.0.Neste caso (incompatibilidade de estrutura), você precisa modificar seu serviço.
Acredito que você terá que transferir o arquivo como uma matriz de bytes para o WCF.Você precisará manipular a postagem do SWFUpload e convertê-la em uma matriz de bytes antes de enviar para o seu serviço.