MultipartFile 轉 File 的兩種方式
阿新 • • 發佈:2019-02-04
在spring上傳檔案中,一般都使用了MultipartFile來接收,但是有需要用到File的地方,這裡只介紹兩種轉為File的方法,當然也有一些其他的方法,我試了有些錯誤,所以就不提了;
- transferTo()
- org.apache.commons.io.FileUtils.copyInputStreamToFile()
程式碼如下:
public void upload(@RequestParam(value = "file") MultipartFile file) {
if (file != null) {
try {
String fileRealName = file.getOriginalFilename();//獲得原始檔名;
int pointIndex = fileRealName.lastIndexOf(".");//點號的位置
String fileSuffix = fileRealName.substring(pointIndex);//擷取檔案字尾
String fileNewName = DateUtils.getNowTimeForUpload();//檔案new名稱時間戳
String saveFileName = fileNewName.concat(fileSuffix);//檔案存取名
String filePath = "D:\\FileAll" ;
File savedFile = new File(filePath);
if(!savedFile.exists()){
savedFile.mkdirs();
}
savedFile = new File(filePath,saveFileName);
boolean isCreateSuccess = savedFile.createNewFile();
if (isCreateSuccess){ //轉存檔案
file.transferTo(savedFile); //第一種
FileUtils.copyInputStreamToFile(mufile.getInputStream(),savedFile); //第二種
}
} catch (Exception e) {
e.printStackTrace();
}
}else {
System.out.println("檔案是空的");
}
}
附commons.io jar包maven地址:
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>