Pergunta

Tenho trabalhado com este aplicativo Android que carrega imagens em um servidor.Consegui fazer upload com sucesso usando PHP, mas estou tendo problemas para fazer upload em um webservice .net.O pessoal responsável pelo webservice me deu o código para que eu pudesse dar uma olhada.

Aqui está.

public Stream FileUpload(string fileName, Stream fileStream)
        {
            var serverPath = System.Web.Hosting.HostingEnvironment.MapPath("~/FileUpload/");
            if (File.Exists(serverPath + fileName)) File.Delete(serverPath + fileName); // delete file if already used


            //FileStream fileToupload = new FileStream("D:\\FileUpload\\" + fileName, FileMode.Create);
            FileStream fileToupload = new FileStream(serverPath + fileName, FileMode.Create);

            byte[] bytearray = new byte[10000];//
            int bytesRead, totalBytesRead = 0;
            do
            {
                bytesRead = fileStream.Read(bytearray, 0, bytearray.Length);
                totalBytesRead += bytesRead;
            } while (bytesRead > 0);

            fileToupload.Write(bytearray, 0, bytearray.Length);
            fileToupload.Close();
            fileToupload.Dispose();

            FileStream fs = File.OpenRead(serverPath + fileName);
            WebOperationContext.Current.OutgoingResponse.ContentType = "image/jpeg";
            return fs;

        }

O problema é que não tenho experiência em .net, então não sei como lidar com essa situação.Parece que a função de upload de imagem no webservice usa um fileStream como você pode ver nos parâmetros acima.

EDITAR

Aqui está meu código java.

HttpResponse httpResponse = null;
        InputStream inputStream;
        try {
            inputStream = new FileInputStream(new File(filePath));
            byte[] data;
            try {
                data = IOUtils.toByteArray(inputStream);

                HttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(
                        "http://localhost/fileUpload");

                InputStreamBody inputStreamBody = new InputStreamBody(
                        new ByteArrayInputStream(data), fileName);
                MultipartEntityBuilder multipartEntity = MultipartEntityBuilder
                        .create();
                multipartEntity.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
                multipartEntity.addPart("file", inputStreamBody);
                HttpEntity entity = multipartEntity.build();
                httpPost.setEntity(entity);
                httpResponse = httpClient.execute(httpPost);

                if (httpResponse != null) {

                } else {

                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
Foi útil?

Solução

encontrei um tutorial aqui.Não consegui enviar o arquivo, mas isso é outra pergunta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top