SpringMVC中文件上傳的客戶端驗證
SpringMVC中文件上傳的客戶端驗證
客戶端驗證主要思想:在jsp頁面中利用javascript進行對文件的判斷,完成驗證後允許上傳
驗證步驟:1.文件名稱
2.獲取文件的後綴名稱
3.判斷哪些文件類型允許上傳
4.判斷文件大小
5.滿足條件後跳轉後臺實現上傳
前臺界面(驗證上傳文件是否格式滿足要求):
<body>
<h2>文件上傳</h2>
<form action="upload01"
上傳者姓名:<input type="text" name="user_name"><br>
文件:<input type="file" name="myfile" id="myfile">
<button>上傳</button>
</form>
<script type="text/javascript">
function toSub(){//首先瀏覽器支持html5
var myfile=document.getElementById("myfile").files[0];
if(myfile){
//1.文件名稱2.獲取文件的後綴名稱3.判斷哪些文件類型允許上傳4.判斷文件大小
var fileName=myfile.name;
//2.獲取文件的後綴名稱
var ext=fileName.substring(fileName.lastIndexOf(".")+1);
//3.判斷哪些文件類型允許上傳
var allowFiles=["jpg","png","docx","doc"];
var flag=false;
for(var i=0;i<allowFiles.length;i++){
if(ext.toLowerCase()==allowFiles[i]){
flag=true;
break;
}
}
if(!flag){
alert("上傳文件格式不正確,允許格式為:"+allowFiles.join(" | "));
return false;
}
//4.判斷文件大小
var maxFileUploadSize=1024*1024*20;
if(myfile.size>maxFileUploadSize){
alert("您上傳文件大小為:"+myfile.size+",大於規定大小:"+maxFileUploadSize);
return false;
}
return true;
}else{
alert("選擇上傳文件");
return false;
}
}
</script>
</body>
後臺上傳:
String path=request.getServletContext().getRealPath("/attr/");
//建立將要存儲在當前服務環境下的文件
File folder=new File(path);
if(!folder.exists()){
//判斷此文件夾是否存在
folder.mkdirs();
//不存在則創建文件夾(可以建立多層的mkdirs()方法)
}
//判斷上傳文件的姓名
String filename=myfile.getOriginalFilename();
//.獲取上傳文件的後綴名,例如jpg,docx
String ext=FilenameUtils.getExtension(filename);
//新建新的上傳文件的文件名
String newFile=new Date().getTime()+"_"+new Random().nextInt(10000)+"."+ext;
//(上面是時間戳方式)
//(另一種方式完成)String newFile=UUID.randomUUID().toString()+"."+ext
//完成上傳
myfile.transferTo(new File(path+File.separator+newFile));
return "jsp/result";
-
-------------------------------end
SpringMVC中文件上傳的客戶端驗證