Uploadify是JQuery的一個上傳插件,實(shí)現(xiàn)的效果非常不錯,帶進(jìn)度顯示。官方提供的實(shí)例是php版本的,您可以點(diǎn)擊下面的鏈接進(jìn)行瀏覽或下載。

JSP前臺頁面:
<script type="text/javascript">
$(document).ready( function() {
$("#uploadify").uploadify( {//初始化函數(shù)
'uploader' :'uploadify.swf',//flash文件位置,注意路徑
'script' :'servlet/Upload',//后臺處理的請求
'cancelImg' :'images/cancel.png',//取消按鈕圖片
'folder' :'uploads',//您想將文件保存到的路徑
'queueID' :'fileQueue',//與下面的上傳文件列表id對應(yīng)
'queueSizeLimit' :8,//上傳文件的數(shù)量
'scriptData':{'a':'value1','b':'value2'},//向后臺傳的數(shù)據(jù)
'fileDesc' :'rar文件或zip文件',//上傳文件類型說明
'fileExt' :'*.rar;*.zip', //控制可上傳文件的擴(kuò)展名,啟用本項(xiàng)時需同時聲明fileDesc
'method':'get',//如果向后臺傳輸數(shù)據(jù),必須是get
'sizeLimit':1000,//文件上傳的大小限制,單位是字節(jié)
'auto' :false,//是否自動上傳
'multi' :true,
'simUploadLimit' :2,//同時上傳文件的數(shù)量
'buttonText' :'BROWSE',//瀏覽按鈕圖片
'onComplete': function(event, queueID, fileObj,serverData,data) {//當(dāng)上傳完成后的回調(diào)函數(shù),ajax方式哦~~
alert(data.speed);
}
});
});
</script>
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/jquery.uploadify.v2.1.0.min.js"></script>
<div id="fileQueue"></div>
<input type="file" name="uploadify" id="uploadify" />
<p>
<a href="javascript:jQuery('#uploadify').uploadifyUpload()">開始上傳</a>
<a href="javascript:jQuery('#uploadify').uploadifyClearQueue()">取消所有上傳</a>
</p>
java后臺:
String savePath = this.getServletConfig().getServletContext().getRealPath("");
savePath = savePath + "/uploads/";
File f1 = new File(savePath);
System.out.println(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
DiskFileItemFactory fac = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(fac);
upload.setHeaderEncoding("utf-8");
List fileList = null;
try {
fileList = upload.parseRequest(request);
} catch (FileUploadException ex) {
ex.printStackTrace();
return;
}
Iterator it = fileList.iterator();
while (it.hasNext()) {
FileItem item = (FileItem) it.next();
if (!item.isFormField()) {
name = item.getName();
long size = item.getSize();
String type = item.getContentType();
if (name == null || name.trim().equals("")) {
continue;
}
// 擴(kuò)展名格式:
if (name.lastIndexOf(".") >= 0) {
extName = name.substring(name.lastIndexOf("."));
}
File file = null;
do {
// 生成文件名:
name = UUID.randomUUID().toString();
file = new File(savePath + name + extName);
} while (file.exists());
File saveFile = new File(savePath + name + extName);
try {
item.write(saveFile);
} catch (Exception e) {
e.printStackTrace();
}
}
}
response.getWriter().print(name + extName);
代碼很好懂,不講解了。
