在文件上傳業務上須要將文件上傳至將File轉換成MultiPartFile的時候,我搜索獲得採用MockMultipartFile這個類能夠輕鬆的轉換。
可是,當我準備使用的時候,坑出現了。它是spring-test下的包。
這個類主要是在test中請求出現的。
打包以後無法使用。所以,MockMultipartFile並不適用於我這種狀況。
因而,我又找到了CommonsMultipartFile這個類,能夠知足業務須要,可是操做比較麻煩。
下面是具體的使用方法:spring
1.首先獲取FileItem對象: public FileItem createFileItem(String filePath) { FileItemFactory factory = new DiskFileItemFactory(16, null); String textFieldName = "textField"; int num = filePath.lastIndexOf("."); String extFile = filePath.substring(num); FileItem item = factory.createItem(textFieldName, "text/plain", true, "MyFileName"); File newfile = new File(filePath); int bytesRead = 0; byte[] buffer = new byte[8192]; try { FileInputStream fis = new FileInputStream(newfile); OutputStream os = item.getOutputStream(); while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) { os.write(buffer, 0, bytesRead); } os.close(); fis.close(); } catch (IOException e) { e.printStackTrace(); } return item; }
2.經過FileItem對象能夠輕鬆得到CommonsMultipartFile對象,轉換成MultiPartFile對象便可使用。code
MultipartFile mfile = new CommonsMultipartFile(fileItem);