struts2整合uploadify插件實現批量上傳,上傳成功後跳轉並傳遞參數

<link href="static/uploadify/uploadify.css" rel="stylesheet"
	type="text/css" />
<script type="text/javascript"
	src="static/uploadify/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="static/uploadify/swfobject.js"></script>
<script type="text/javascript"
	src="static/uploadify/jquery.uploadify.v2.1.4.min.js"></script>
<script type="text/javascript">
	$(document).ready(function() {
		$("#uploadify").uploadify({
			'uploader' : 'static/uploadify/uploadify.swf', //是組件自帶的flash,用於打開選取本地文件的按鈕
			'script' : 'upload.action',//處理上傳的路徑,這裏使用Struts2是XXX.action
			'scriptData' :{'catId':$('#catId').val()},
			'cancelImg' : 'static/uploadify/cancel.png',//取消上傳文件的按鈕圖片,就是個叉叉
			'folder' : 'uploads',//上傳文件的目錄
			'fileDataName' : 'uploadify',//和input的name屬性值保持一致就好,Struts2就能處理了
			'queueID' : 'fileQueue',
			'auto' : false,//是否選取文件後自動上傳
			'multi' : true,//是否支持多文件上傳
			'simUploadLimit' : 1,//每次最大上傳文件數
			'queueSizeLimit' : 50,
			'removeCompleted' : true,
			'buttonText' : 'BORWSE',//按鈕上的文字
			'displayData' : 'percentage',//有speed和percentage兩種,一個顯示速度,一個顯示完成百分比
			'fileDesc' : '支持格式:jpg/gif/jpeg/png/bmp.', //如果配置了以下的'fileExt'屬性,那麼這個屬性是必須的
			'fileExt' : '*.jpg;*.gif;*.jpeg;*.png;*.bmp',//允許的格式
			'onComplete' : function(event, queueID, fileObj, response, data) {
				//$("#result").html(response);//顯示上傳成功結果
				//setInterval("showResult()", 2000);//兩秒後刪除顯示的上傳成功結果
				window.location.href="<%=basePath%>photoManage/uploadPhoto.action?catId="+$('#catId').val();//上傳成功後跳轉,並傳遞參數
			}
		});
	});

	//function showResult() {//刪除顯示的上傳成功結果
	//	$("#result").html("");
	//}
	function uploadFile() {//上傳文件
		jQuery('#uploadify').uploadifyUpload();
	}
	function clearFile() {//清空所有上傳隊列
		jQuery('#uploadify').uploadifyClearQueue();
	}
</script>
                <input type="file" name="uploadify" id="uploadify"/>
                <s:hidden name="catId"></s:hidden> //上傳成功後要傳遞的參數值               
                <div>                
                        <div id="fileQueue"></div>                 
                </div>
                <input type="button" οnclick="uploadFile()"  value="開始上傳"> 
                <input type="button" οnclick="clearFile()" value="取消所有上傳">

接受上傳處理的Action

private File uploadify;
private String uploadifyFileName;
public String upload()throws Exception{
		String extName = "";
		PhotoService photoService = ServiceLocator.getPhotoService(); 
		String saveRealFilePath = ServletActionContext.getServletContext().getRealPath("/upload");  
		File fileDir = new File(saveRealFilePath);  
	    if (!fileDir.exists()) {  
	        fileDir.mkdirs();  
	    } 
	    File savefile; 
	    if(uploadifyFileName.lastIndexOf(".")>=0){
	    	extName = uploadifyFileName.substring(uploadifyFileName.lastIndexOf("."));
	    }
	    String nowTime = ""+new Date().getTime();
	    savefile = new File(saveRealFilePath + "/" + nowTime + extName);
	    try {
			Photo photo  = new Photo();
			photo.setCatId(Integer.parseInt(catId));
			photo.setPhotoName(nowTime + extName);
			boolean result = photoService.insertPhoto(photo);
		} catch (Exception e) {
			e.printStackTrace();
		}
	    FileUtils.copyFile(uploadify,savefile);
	    HttpServletResponse response = ServletActionContext.getResponse();
	    response.setCharacterEncoding("utf-8");
	    response.getWriter().print(uploadifyFileName+"上傳成功");
	    return null;
	}
    public File getUploadify() {
        return uploadify;
    }
    
    public void setUploadify(File uploadify) {
        this.uploadify = uploadify;
    }
    
    public String getUploadifyFileName() {
        return uploadifyFileName;
    }
    
    public void setUploadifyFileName(String uploadifyFileName) {
        this.uploadifyFileName = uploadifyFileName;
    }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章