Java客戶端服務端上傳接收文件實現詳解
Java客戶端通過HTTP協議上傳文件, 服務端處理客戶端請求, MultipartFile轉File, 實現客戶端上傳文件的存儲
Java環境: JDK1.8開發環境: IDEASpringBoot: 2.2.0Maven: 3.6.3
Java客戶端通過HTTP協議上傳文件
// 引入pom依賴, hutool相關文檔, https://www.hutool.cn/docs/<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.3.7</version></dependency>
HashMap<String, Object> paramMap = new HashMap<>();//文件上傳只需將參數中的鍵指定(默認file),值設為文件對象即可,對于使用者來說,文件上傳與普通表單提交并無區別paramMap.put('file', FileUtil.file('C:文件路徑文件名稱'));String result = HttpUtil.post('服務端IP:端口', paramMap);
Java服務端接收請求并實現文件的存儲
工具類
public class Utils { public static void saveFile( MultipartFile filecontent){ OutputStream os = null; InputStream inputStream = null; String fileName = null; try { inputStream = filecontent.getInputStream(); fileName = filecontent.getOriginalFilename(); } catch (IOException e) { e.printStackTrace(); } try { String path = 'C:test'; // 2、保存到臨時文件 // 1K的數據緩沖 byte[] bs = new byte[1024]; // 讀取到的數據長度 int len; // 輸出的文件流保存到本地文件 File tempFile = new File(path); if (!tempFile.exists()) {tempFile.mkdirs(); } os = new FileOutputStream(tempFile.getPath() + File.separator + fileName); // 開始讀取 while ((len = inputStream.read(bs)) != -1) {os.write(bs, 0, len); } } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { // 完畢,關閉所有鏈接 try {os.close();inputStream.close(); } catch (IOException e) {e.printStackTrace(); } } }}
Controller類
@Controllerpublic class FileController { @RequestMapping('/') @ResponseBody public String index(@RequestParam(value = 'file', required = false) MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws IOException { Utils.saveFile(file); return 'Success'; }}
注意:
文件較大時spring-boot 服務端報上傳文件錯誤“spring.servlet.multipart.max-file-size”
可以修改配置文件: application.properties, 添加以下配置..大小自行修改...
spring.servlet.multipart.max-file-size=200MBspring.servlet.multipart.max-request-size=200MB
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。
相關文章:
