在文件上传业务上须要将文件上传至将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);