httpclient upload file

來源:互聯網
上載者:User

標籤:image   size   pen   []   如何   ons   cat   rac   new   

用httpclient upload上傳檔案時,代碼如下:

        HttpPost httpPost = new HttpPost(uploadImg);        httpPost.addHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8");        httpPost.addHeader("Accept-Encoding", "gzip, deflate");        httpPost.addHeader("Accept-Language", "zh-CN,zh;q=0.8,en;q=0.6");        httpPost.addHeader("Cache-Control", "max-age=0");        httpPost.addHeader("Connection", "keep-alive");        httpPost.addHeader("Content-Type", "multipart/form-data;");        File file = new File("/Users/xxx/Desktop/建立檔案夾/1.jpg");        byte[] fileBytes = readInputStream(new FileInputStream(file));        byte[] imgBytes = Base64.encodeBase64(fileBytes);        String img = new String(imgBytes);        img = img.replace("\n", "");        MultipartEntityBuilder builder = MultipartEntityBuilder.create();        builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);        builder.addBinaryBody("file", file, ContentType.create("image/jpeg"), file.getName());        HttpEntity entity = builder.build();        httpPost.setEntity(entity);        HttpResponse httpResponse = HttpClientBuilder.create().build().execute(httpPost);        String responseStr = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");        System.err.println(responseStr);

 

一直提示如下異常:

</pre></p><p><b>root cause</b> <pre>org.apache.commons.fileupload.FileUploadException: the request was rejected because no multipart boundary was foundorg.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:990)org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310)org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:334)org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115)org.springframework.web.multipart.commons.CommonsMultipartResolver.parseRequest(CommonsMultipartResolver.java:156)org.springframework.web.multipart.commons.CommonsMultipartResolver.resolveMultipart(CommonsMultipartResolver.java:139)org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1047)org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:892)org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838)javax.servlet.http.HttpServlet.service(HttpServlet.java:650)org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)javax.servlet.http.HttpServlet.service(HttpServlet.java:731)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)com.shangou.trace.http.BraveServletFilterUtil.doFilter(BraveServletFilterUtil.java:54)com.shandiangou.member.session.SdgSessionFilter.doFilter(SdgSessionFilter.java:130)</pre></p><p><b>note</b> <u>The full stack trace of the root cause is available in the xqs logs.</u></p><HR size="1" noshade="noshade"><h3>xqs</h3></body></html>

  

原因在於設定了contentType的值。當為boundary設定了contentType後,server不知道boundary如何處理。

因此,刪掉contentType的設定即可。

 

 

 

 

 

 

  

httpclient upload file

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.