SpringMVC中的文件上傳
SpringMVC中的文件上傳
步驟:
1.獲取服務器下某個文件的絕對路徑
2.1判斷此文件夾是否存在不存在則創建文件夾(可以建立多層的mkdirs()方法)
3.判斷上傳文件的姓名
4.判斷是否上傳文件
5.獲取上傳文件的後綴名,例如jpg,docx
6.新建新的上傳文件的文件名
7.完成上傳
Html處代碼(直接上傳,不對文件進行判斷):
<body>
<h2>文件上傳</h2>
<form action="upload01" method="post" enctype="multipart/form-data">
上傳者姓名:<input type="text" name="user_name"><br>
文件:<input type="file" name="myfile">
<button>上傳</button>
</form>
</body>
Controller中上傳部分代碼:
@postMapping("/upload01")
public String text(){
//1.獲取服務器下某個文件的絕對路徑
String path=request.getServletContext().getRealPath("/attr/");
//2.文件夾的建立2.1判斷此文件夾是否存在
File folder=new File(path);
if(!folder.exists()){//2.1判斷此文件夾是否存在
folder.mkdirs();//2.1不存在則創建文件夾(可以建立多層的mkdirs()方法)
}
//3.判斷上傳文件的姓名
String filename=myfile.getOriginalFilename();
//4.判斷是否上傳文件
if(!filename.isEmpty()){
//5.獲取上傳文件的後綴名,例如jpg,docx
String ext=FilenameUtils.getExtension(filename);
//6.新建新的上傳文件的文件名
String newFile=new Date().getTime()+"_"+new Random().nextInt(10000)+"."+ext;
//(上面是時間戳方式)
//String newFile=UUID.randomUUID().toString()+"."+ext
//7.完成上傳
myfile.transferTo(new File(path+File.separator+newFile));
}else{
}
return "jsp/result";//跳轉到上傳文件成功界面
}
SpringMVC中需要的配置信息
<!-- 文件上傳的解析器,只有id是固定值 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 編碼格式 -->
<property name="maxUploadSize" value="20971520" />
<!-- 上傳文件大小 -->
<property name="maxInMemorySize" value="2048" />
<!-- 上傳文件緩存 -->
<property name="resolveLazily" value="true" />
<!-- 上傳文件延時,提供上傳效率 -->
</bean>
---------------end
SpringMVC中的文件上傳