1. 程式人生 > >SpringMVC中文件上傳的客戶端驗證

SpringMVC中文件上傳的客戶端驗證

nbsp line contex 後綴名 request 進行 dir java mil

SpringMVC中文件上傳的客戶端驗證

客戶端驗證主要思想:在jsp頁面中利用javascript進行對文件的判斷,完成驗證後允許上傳

驗證步驟:1.文件名稱

2.獲取文件的後綴名稱

3.判斷哪些文件類型允許上傳

4.判斷文件大小

5.滿足條件後跳轉後臺實現上傳

前臺界面(驗證上傳文件是否格式滿足要求):

<body>

<h2>文件上傳</h2>

<form action="upload01"

method="post" enctype="multipart/form-data" onsubmit="return toSub();">

上傳者姓名:<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中文件上傳的客戶端驗證