import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.apache.http.entity.ContentType;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
/**
* @author
* @Title: fileTran.java
* @Package
* @Description: 文件转换
* @date 2019年03月12日 17:37
*/
public class fileTran {
public static void main(String[] args) throws IOException {
//File 转 MultipartFile 使用 MockMultipartFile方法一
File file = new File("D:\\testmultif.txt");
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile("file", file.getName(), "text/plain", IOUtils.toByteArray(input));
//File 转 MultipartFile 使用 CommonsMultipartFile 方法二
File file3 = new File("D:\\testmultif.txt");
// 创建fileItem,具体方法参见第三节
FileItem fileItem = new DiskFileItem(
"file", // 表单参数名
ContentType.APPLICATION_OCTET_STREAM.toString(), // 文件类型
false, // 是否为表单格式
file3.getName(), // 文件名
10240, // 超过多少byte存在磁盘上
file3// 文件存储位置
);
// 将File内容写入fileItem,使用org.apache.commons.io.IOUtils
IOUtils.copy(new FileInputStream(file), fileItem.getOutputStream());
MultipartFile multipartFile2 = new CommonsMultipartFile(fileItem);
//MultipartFile 转 File 方法二
File file2 = new File("D:\\testmultif2.txt");
FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file2);
//MultipartFile 转 File 临时文件存放在内存中 方法二
CommonsMultipartFile cf = (CommonsMultipartFile) multipartFile2;
DiskFileItem df = (DiskFileItem) cf.getFileItem();
File f = df.getStoreLocation();
}
}
MultipartFile和File 的相互转换
猜你喜欢
转载自blog.csdn.net/m0_37882063/article/details/88553040
今日推荐
周排行