將文件轉換為文件流進行上傳(例:通過HDMI進行傳輸)



package com.boottest.app; import org.apache.commons.codec.Charsets; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.ContentType; import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntity; import org.apache.http.entity.mime.MultipartEntityBuilder; import org.apache.http.entity.mime.content.FileBody; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.io.*; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; public class FileTest { public static void main(String[] args) throws Exception { String url ="http://localhost:8200/sys/uploadfile/uploadFile"; InputStream inputStream=new FileInputStream("C:\\Users\\Administrator\\Desktop\\work_order1.txt");; List<NameValuePair> params=new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("file_real_name","work_order1.txt")); String Result=postInputStream(url,inputStream,"work_order1.txt",params); System.out.println("發送消息收到的返回:"+Result); } public static String postInputStream(String requestUrl,InputStream inputStream, String fileName, List<NameValuePair> params) throws Exception { try { CloseableHttpClient httpClient = HttpClients.createDefault(); // 創建 POST請求 HttpPost httpPost = new HttpPost(requestUrl); // 構建多組件 Entrity構建器 MultipartEntityBuilder builder = MultipartEntityBuilder.create(); builder.setCharset(Charsets.UTF_8); builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); //文件傳輸http請求頭(multipart/form-data) builder.addBinaryBody("file", inputStream, ContentType.MULTIPART_FORM_DATA, fileName);// 文件流 //字節傳輸http請求頭(application/json) ContentType contentType = ContentType.create("application/json", Charsets.UTF_8); for (NameValuePair param : params) { // 傳輸字節流 builder.addTextBody(param.getName(), param.getValue(), contentType); } HttpEntity entity = builder.build(); httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); // 執行提交 HttpEntity responseEntity = response.getEntity(); if (responseEntity != null) { // 將響應內容轉換為字符串 return EntityUtils.toString(responseEntity, Charsets.UTF_8); } } catch (Exception e) { throw new Exception("post請求失敗,"+e.getMessage()); } return ""; } }

  

所需pom依賴:
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5</version>
</dependency>
<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpmime</artifactId>
    <version>4.5</version>
</dependency>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM