Struts2+uploadify多文件上傳實例
更新時間:2018年08月29日 11:00:16 作者:Jaaaaaaaava
這篇文章主要為大家詳細介紹了Struts2+uploadify多文件上傳實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Struts2+uploadify多文件上傳的具體代碼,供大家參考,具體內(nèi)容如下
首先我這里使用的是 Jquery Uploadify3.2的版本
導入相關(guān)的CSS JS
<link rel="stylesheet" type="text/css" href="<%=basePath%>css/uploadify/uploadify.css" rel="external nofollow" > <script src="<%=basePath%>js/jquery.min.js"></script> <script src="<%=basePath%>js/uploadify/jquery.uploadify.min.js"></script>
接下來是 上傳的 JSP 頁面代碼
<form action="" method="post" >
<input type="file" name="img_file" id="img_file">
<div id="uploadfileQueue" ></div>
<div id="imgs" ></div>
<div id="dialog-message" ></div>
</form>
<p>
<a href="javascript:void(0);" rel="external nofollow" onclick="myUpload()">上傳</a>
<a href="javascript:$('#img_file').uploadify('cancel')" rel="external nofollow" >取消上傳</a>
</p>
這里是最關(guān)鍵的JS 代碼,有注釋
$(function(){
$("#img_file").uploadify({
auto:false,//是否自動上傳
height: 30,
buttonText:'選擇圖片',
cancelImage:'<%=basePath%>img/uploadify/uploadify-cancel.png',
swf : '<%=basePath %>js/uploadify/uploadify.swf',
// expressInstall:'js/uploadify/expressInstall.swf',
uploader : '<%=basePath%>json/fileUploadAction.action', //后臺處理上傳文件的action
width : 120 ,
'multi': true, //設(shè)置為true將允許多文件上傳
'filesSelected': '4',
queueID:'uploadfileQueue',
fileObjName:'img_file', //與后臺Action中file屬性一樣
/*
formData:{ //附帶值
'userid':'111',
'username':'tom',
'rnd':'111'
},
*/
fileTypeDesc:'上傳文件支持的文件格式:jpg,jpge,gif,png',
fileTypeExts:'*.jpg;*.jpge;*.gif;*.png',//*.jpg;*.jpge;*.gif;*.png
queueSizeLimit : 4,//只能一次上傳4張圖片
// simUploadLimit:1,//一次可以上傳1個文件
fileSizeLimit:'2097152',//上傳文件最大值 單位為字節(jié) 2M
//返回一個錯誤,選擇文件的時候觸發(fā)
onSelectError:function(file, errorCode, errorMsg){
switch(errorCode) {
case -100:
alert("上傳的文件數(shù)量已經(jīng)超出系統(tǒng)限制的4個文件!");
break;
case -110:
alert("文件 ["+file.name+"] 大小超出系統(tǒng)限制的2M大??!");
break;
case -120:
alert("文件 ["+file.name+"] 大小異常!");
break;
case -130:
alert("文件 ["+file.name+"] 類型不正確!");
break;
}
}, //
//上傳到服務器,服務器返回相應信息到data里
onUploadSuccess:function(file, data, response){
var objs = eval('('+data+')');
var phtml = "<span><img style='width:150;height:150' src='/uploads/"+objs.filename+"'></span>";
if($("#imgs span").length==0){
$("#imgs").html(phtml);
}else{
$("#imgs span:last").after(phtml);
}
},
onSelect : function(file) {
//alert(file.name);
},
//removeCompleted:true,//上傳的文件進度條是否消失
requeueErrors:false,
// removeTimeout:2,//進度條消失的時間,默認為3
progressData:"percentage",//顯示上傳的百分比
onUploadError : function(file,errorCode,errorMsg,errorString,swfuploadifyQueue) { //這里是取消的時候發(fā)生
// $("#dialog-message").html(errorString);
}
});
});
//上傳文件
function myUpload(){
$("#img_file").uploadify('upload','*');
}
java 上傳的Action 代碼
/**
* 上傳文件的Action
* @author wzh
*
*/
@Controller
@Scope("prototype")
public class FileUploadAction extends BaseAction {
private File img_file;
private String img_fileContentType;//格式同上"fileName"+ContentType
private String img_fileFileName;//格式同上"fileName"+FileName
private String savePath;//文件上傳后保存的路徑
private Map<String, Object> dataMap = new HashMap<String, Object>();
@Override
/***
* 上傳文件
*/
public String execute() throws Exception{
System.out.println("savePath"+getSavePath());
File dir=new File(getSavePath());
System.out.println(dir.getAbsolutePath());
//判斷是否存在路徑
if(!dir.exists()){
dir.mkdirs();
}
//當前上傳的文件
File file=getImg_file();
//獲得后綴
String ext =FileUtil.getExtensionName(getImg_fileFileName());
String newFileName = UUID.randomUUID()+ext;
FileOutputStream fos=new FileOutputStream(getSavePath()+"http://"+newFileName);
FileInputStream fis=new FileInputStream(getImg_file());
byte []buffers=new byte[1024];
int len=0;
while((len=fis.read(buffers))!=-1){
fos.write(buffers,0,len);
}
fos.close();
fis.close();
// String uploadFileName = getImg_fileFileName();
dataMap.put("filename",newFileName);
return SUCCESS;
}
<!-- 文件上傳相關(guān)的 --> <action name="fileUploadAction" class="fileUploadAction"> <param name="savePath">E:/Tomcat6.0/webapps/uploads</param> <result type="json"> <param name="root">dataMap</param> </result> </action>
配置完以上的基本就OK了。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關(guān)文章
Java異常處理之java.lang.ClassCastException問題
這篇文章主要介紹了Java異常處理之java.lang.ClassCastException問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
Java使用JDBC實現(xiàn)Oracle用戶認證的方法詳解
這篇文章主要介紹了Java使用JDBC實現(xiàn)Oracle用戶認證的方法,結(jié)合實例形式分析了java使用jdbc實現(xiàn)數(shù)據(jù)庫連接、建表、添加用戶、用戶認證等操作流程與相關(guān)注意事項,需要的朋友可以參考下2017-08-08

