文件上傳至將File轉換成MultiPartFile

在文件上傳業務上須要將文件上傳至將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);
相關文章
相關標籤/搜索