(6) javaweb 文件下載 ie chrome正常 但是ff下載中文名稱亂碼 另附上傳下載代碼

 ------------------------------------------------------------------------------------------------------------------------------------------------


javaweb項目   文件下載 ie chrome正常 但是ff下載中文名稱亂碼  百度了下解決方案  測試可行。IE火狐和chrome測了三個


                //瀏覽器下載亂碼 ie  chrome  ff  ---------start
	        String ua = request.getHeader("User-Agent");
	        if(ua != null){
	        	if(( ua.toLowerCase().indexOf("firefox") > 0) ||  ua.toLowerCase().indexOf("mozilla") > 0  ){
		        	//解決火狐瀏覽器下載文件名亂碼問題 (20150619 new)
			        String userAgent = request.getHeader("User-Agent");  
			        byte[] bytes = userAgent.contains("MSIE") ? realname.getBytes() : realname.getBytes("UTF-8"); // name.getBytes("UTF-8")處理safari的亂碼問題  
			        realname = new String(bytes, "ISO-8859-1"); // 各瀏覽器基本都支持ISO編碼  
			        response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", realname)); // 文件名外的雙引號處理firefox的空格截斷問題  
	            }else{
	            	         //設置響應頭,控制瀏覽器下載該文件 ,僅此火狐下會出現下載文件中文亂碼的問題   ,ie chrome正常
			         response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8").replace("+", "%20")); 
	            }
	        }else{
		         response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8").replace("+", "%20")); 
	        }
	        //瀏覽器下載亂碼 ie  chrome  ff  ---------end
	        


 ------------------------------------------------------------------------------------------------------------------------------------------------


附文件上傳下載代碼:


/**
	 * 文件上傳
	 */
	@RequestMapping(value = "/uploadFileExe.do", method = RequestMethod.POST)
	public void uploadFileExe(HttpServletRequest request, HttpServletResponse response) {
		
		String message = ""; // 消息提示
		try {
			// 得到上傳文件的保存目錄,將上傳的文件存放於WEB-INF目錄下,不允許外界直接訪問,保證上傳文件的安全
			V_USER vUser = (V_USER) request.getSession().getAttribute("user");
			String folderName = "companyId" + vUser.getCompanyId();
			String tempDirectory = PropertiesUtil.getStringValue("userLoan_file_upload_path");
			String savePath = tempDirectory +File.separator+folderName;

			// 判斷上傳文件的保存目錄是否存在
			File file = new File(savePath);
			if (!file.exists() && !file.isDirectory()) {
				file.mkdirs();// 創建目錄
			}
			
			// 1、創建一個DiskFileItemFactory工廠
			DiskFileItemFactory factory = new DiskFileItemFactory();
			// 2、創建一個文件上傳解析器
			ServletFileUpload upload = new ServletFileUpload(factory);
			// 解決上傳文件名的中文亂碼
			upload.setHeaderEncoding("UTF-8");
			// 3、判斷提交上來的數據是否是上傳表單的數據
			if (!ServletFileUpload.isMultipartContent(request)) {
				response.setStatus(566);//566狀態碼 傳遞給前端 SWF組件  含義"系統異常,上傳失敗!"
				return;
			}
			// 4、使用ServletFileUpload解析器解析上傳數據,解析結果返回的是一個List<FileItem>集合,每一個FileItem對應一個Form表單的輸入項
			List<FileItem> list = upload.parseRequest(request);
			FileItem item = null; // 單文件上傳,只取第一個item

			for (int i = 0 ;i < list.size(); i++){
				item = (FileItem) list.get(i);
				// 保存文件
				if (!item.isFormField() && item.getName()!=null&&!item.getName().endsWith(".tmp")) {
					item = list.get(i);
					break;
				}
			}
			
			Long size = item.getSize();
			String sizeStr = "";
			if(size<1024){
				sizeStr = size+"字節";
			}else if(size>=1024 && size<1048576){
				sizeStr = new DecimalFormat("#.00").format((double)size/1024) +"K";
			}else{
				sizeStr =  new DecimalFormat("#.00").format((double)size/1048576) +"M";
			}
			
			String filename = item.getName(); // 得到上傳的文件名稱,
			// 注意:不同的瀏覽器提交的文件名是不一樣的,有些瀏覽器提交上來的文件名是帶有路徑的,如: c:\a\b\1.txt,而有些只是單純的文件名,如:1.txt
			// 處理獲取到的上傳文件的文件名的路徑部分,只保留文件名部分
			filename = filename.substring(filename.lastIndexOf("\\") + 1);
			
			if(filename.length()>30){
				response.setStatus(555);//555狀態碼 傳遞給前端 SWF組件  含義"文件名超長,上傳失敗!30個字符內!"
				return;
			}
			
			//文件重名校驗:重名則不允許上傳<業務代碼>
			List<UserLoanUpFilePojo> list4Name = userLoadService.queryFileListByCompanyid( vUser.getCompanyId());
			boolean  dupNameflag = false; 
			if( list4Name!=null && !list4Name.isEmpty()){
				for (UserLoanUpFilePojo userLoanUpFilePojo : list4Name) {
					if(userLoanUpFilePojo.getFileName().equals(filename)){
						dupNameflag = true;break;
					}
				}
				if(dupNameflag){
					response.setStatus(599);//777狀態碼 傳遞給前端 SWF組件  含義"同名文件已存在,上傳失敗!"
					return;
				}
			}
			
			// 獲取item中的上傳文件的輸入流
			InputStream in = item.getInputStream();
			// 創建一個文件輸出流
			File f = new File(savePath + File.separator + filename);
			if (!f.exists()) {
				f.createNewFile();
			}
			FileOutputStream out = new FileOutputStream(f);
			// 創建一個緩衝區
			byte buffer[] = new byte[1024];
			// 判斷輸入流中的數據是否已經讀完的標識
			int len = 0;
			// 循環將輸入流讀入到緩衝區當中,(len=in.read(buffer))>0就表示in裏面還有數據
			while ((len = in.read(buffer)) > 0) {
				// 使用FileOutputStream輸出流將緩衝區的數據寫入到指定的目錄中
				out.write(buffer, 0, len);
			}

			// 更新數據庫記錄
			UserLoanUpFilePojo userLoanUpFilePojo = new UserLoanUpFilePojo();
			userLoanUpFilePojo.setCompanyId(vUser.getCompanyId());
			userLoanUpFilePojo.setCompanyName(vUser.getCompany_name());
			userLoanUpFilePojo.setFileName(filename);
			userLoanUpFilePojo.setFileFlagUnique(String.valueOf(System .currentTimeMillis()));
			userLoanUpFilePojo.setFileSize(size);
			userLoanUpFilePojo.setFileSizeMk(sizeStr);
			userLoanUpFilePojo.setCreateDate(TimeUtils.getNowDate("yyyy-MM-dd HH:mm:ss"));
			userLoanUpFilePojo.setCreateUserId(vUser.getId());
			try {
				userLoadService.insertUserLoadUpfile(userLoanUpFilePojo);
			} catch (Exception e) {
				e.printStackTrace();
				response.setStatus(588);//588狀態碼 傳遞給前端 SWF組件  含義"保存文件數據失敗,請重新上傳!"
				return;
				
			}

			// 關閉輸入流
			in.close();
			// 關閉輸出流
			out.close();
			// 刪除處理文件上傳時生成的臨時文件
			item.delete();
			message = filename + "上傳成功!";
		} catch (Exception e) {
			logger.error("",e);
			e.printStackTrace();
			response.setStatus(566);//566狀態碼 傳遞給前端 SWF組件  含義"系統異常,上傳失敗!"
			return;
		}
		response.setStatus(200);

	}


/**
	 * 文件下載操作
	 */
	@RequestMapping(value = "/downuserLoanFile.do", method = RequestMethod.GET)
	public void downuserLoanFile(HttpServletRequest request, HttpServletResponse response) {
		
		 try {
			String fid = (String) request.getParameter("fid");
			UserLoanUpFilePojo userLoanUpFilePojo = userLoadService.queryFnByUniqueId(fid);
			String folderName = "companyId"+userLoanUpFilePojo.getCompanyId();
			String tempDirectory = PropertiesUtil.getStringValue("userLoan_file_upload_path");
			String savePath = tempDirectory+File.separator+folderName;
			String fileName = userLoanUpFilePojo.getFileName();
	        //上傳的文件都是保存在/WEB-INF/upload目錄下的子目錄當中
	        File file = new File(savePath+File.separator+fileName);
	        //如果文件不存在
	        if(!file.exists()){
	            return;
	        }
	        //處理文件名
	        String realname = fileName.substring(fileName.indexOf("_")+1);
	        
	        System.out.println(URLEncoder.encode(realname, "UTF-8"));
	        
	        //瀏覽器下載亂碼 ie  chrome  ff  ---------start
	        String ua = request.getHeader("User-Agent");
	        if(ua != null){
	        	if(( ua.toLowerCase().indexOf("firefox") > 0) ||  ua.toLowerCase().indexOf("mozilla") > 0  ){
		        	//解決火狐瀏覽器下載文件名亂碼問題 (20150619 new)
			        String userAgent = request.getHeader("User-Agent");  
			        byte[] bytes = userAgent.contains("MSIE") ? realname.getBytes() : realname.getBytes("UTF-8"); // name.getBytes("UTF-8")處理safari的亂碼問題  
			        realname = new String(bytes, "ISO-8859-1"); // 各瀏覽器基本都支持ISO編碼  
			        response.setHeader("Content-disposition", String.format("attachment; filename=\"%s\"", realname)); // 文件名外的雙引號處理firefox的空格截斷問題  
	            }else{
	            	//設置響應頭,控制瀏覽器下載該文件 ,僅此火狐下會出現下載文件中文亂碼的問題   ,ie chrome正常
			         response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8").replace("+", "%20")); 
	            }
	        }else{
		         response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(realname, "UTF-8").replace("+", "%20")); 
	        }
	        //瀏覽器下載亂碼 ie  chrome  ff  ---------end
	        
	        //讀取要下載的文件,保存到文件輸入流
	        FileInputStream in = new FileInputStream(file);
	        //創建輸出流
	        OutputStream out = response.getOutputStream();
	        //創建緩衝區
	        byte buffer[] = new byte[1024];
	        int len = 0;
	        //循環將輸入流中的內容讀取到緩衝區當中
	        while((len=in.read(buffer))>0){
	            //輸出緩衝區的內容到瀏覽器,實現文件下載
	            out.write(buffer, 0, len);
	        }
	        
	        out.flush();
	        //關閉文件輸入流
	        in.close();
	        //關閉輸出流
	        out.close();
        
		 } catch (Exception e) {
				logger.error("",e);
		 } 
     }	
	


  

前段頁面SWFupload提交請求( 前端的人幫忙弄了一下改了header.js)

<form>
				<table border="0" cellspacing="0" cellpadding="3" style="margin-top: 100px">

					<tbody><tr>
						<td class="title">請選擇上傳文件</td>
					</tr>
					<tr>
						<td>
							<div class="position_r clearfix" id="flashBtn">
								<input type="text" class="inp fl" id="fileValue" style="color:#475477;" readonly="readonly">
								<div class="fl">
								<div class="flashBtn_trigger">
									<span id="spanButtonPlaceholder"></span>
								</div>
								</div>
							</div></td>
					</tr>
					<tr>
						<td class="alert">*目前支持的文件類型是.xls,.xlsx,.txt,.zip,.rar</td>
					</tr>
					<tr>
						<td class="">
							<span id="notifyInfo" ></span>
						</td>
					</tr>

				</tbody></table>
			</form>



<script type="text/javascript" src="<%=contextPath%>/js/swfupload/swfupload.js"></script>
	<script type="text/javascript" src="<%=contextPath%>/js/swfupload/handlers.js"></script>	
	<script type="text/javascript">
	
	var swfu;
	window.onload = function () {
		swfu = new SWFUpload({
			upload_url: "<%=contextPath%>/userLoanController/uploadFileExe.do;jsessionid=<%=request.getSession().getId()%>",
			post_params: {},
			button_image_url : "<%=contextPath%>/img/up_1.png",
			use_query_string:true,
			// File Upload Settings
			file_size_limit : "20 MB",	// 文件大小控制
			file_types : "*.txt;*.zip;*.xls;*.xlsx;*.zip;*.rar",
			file_types_description : "All Files",
			file_upload_limit : 0,  //配置上傳個數
			file_queue_limit : 1,
							
			file_queue_error_handler : fileQueueError,
			file_dialog_complete_handler : fileDialogComplete,//選擇好文件後提交
			file_queued_handler : fileQueued,
			upload_progress_handler : uploadProgress,
			upload_error_handler : uploadError,
			upload_success_handler : uploadSuccess,
			upload_complete_handler : uploadComplete,
			button_placeholder_id : "spanButtonPlaceholder",
			button_width: 96,
			button_height: 28,
			button_text : '',
			button_text_style : '.button { font-family: Helvetica, Arial, sans-serif; font-size: 12pt; } .buttonSmall { font-size: 10pt; }',
			button_text_top_padding: 0,
			button_text_left_padding: 18,
			button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
			button_cursor: SWFUpload.CURSOR.HAND,
			
			// Flash Settings
			flash_url : "<%=contextPath%>/js/swfupload/swfupload.swf",

			custom_settings : {
				upload_target : "divFileProgressContainer"
			},
			// Debug Settings
			debug: false  //是否顯示調試窗口
		});
	};
	function startUploadFile(){
		swfu.startUpload();
	}
	
	/* $('#flashBtn').delegate('input','click',function(evt){
		$('#flashBtn object').trigger('click')
	}) */
	</script>


function fileQueueError(file, errorCode, message) {
	
	try {
		var imageName = "<font color='red'>文件上傳錯誤</font>";
		var errorName = "";
		if (errorCode === SWFUpload.errorCode_QUEUE_LIMIT_EXCEEDED) {
			errorName = "You have attempted to queue too many files.";
		}

		if (errorName !== "") {
			//alert(errorName+"??");
			return;
		}
		
		switch (errorCode) {
	
		case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE:
			imageName = "<font color='#475477'>文件大小爲0,上傳失敗!</font>";
			break;
		case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:
			imageName = "<font color='#475477'>文件大小超過限制,上傳失敗!文件大小20M以內!</font>";
			break;
		case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
			imageName = "<font color='#475477'>文件格式不匹配,上傳失敗!</font>";
			break;
		
		case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE:
		default:
			//alert(message);
			break;
		}
		addReadyFileInfo(file.id,file.name,imageName,"無法上傳");

	} catch (ex) {
		this.debug(ex);
	}
}

/**
 * 當文件選擇對話框關閉消失時,如果選擇的文件成功加入上傳隊列,
 * 那麼針對每個成功加入的文件都會觸發一次該事件(N個文件成功加入隊列,就觸發N次此事件)。
 * @param {} file
 * id : string,			    // SWFUpload控制的文件的id,通過指定該id可啓動此文件的上傳、退出上傳等
 * index : number,			// 文件在選定文件隊列(包括出錯、退出、排隊的文件)中的索引,getFile可使用此索引
 * name : string,			// 文件名,不包括文件的路徑。
 * size : number,			// 文件字節數
 * type : string,			// 客戶端操作系統設置的文件類型
 * creationdate : Date,		// 文件的創建時間
 * modificationdate : Date,	// 文件的最後修改時間
 * filestatus : number		// 文件的當前狀態,對應的狀態代碼可查看SWFUpload.FILE_STATUS }
 */
function fileQueued(file){
	//console.log('fileQueued()');
	//addReadyFileInfo(file.id,file.name,"成功加載到上傳隊列");
}
function fileDialogComplete(numFilesSelected, numFilesQueued) {
	//console.log('fileDialogComplete()');
	try {
		if (numFilesQueued > 0) {
			//document.getElementById('btnCancel').disabled = "";
			this.startUpload();
		}
	} catch (ex) {
		this.debug(ex);
	}
}

function uploadProgress(file, bytesLoaded) {

	try {
		var percent = Math.ceil((bytesLoaded / file.size) * 100);

		var progress = new FileProgress(file,  this.customSettings.upload_target);
		progress.setProgress(percent);
		if (percent === 100) {
			progress.setStatus("");//正在創建縮略圖...
			progress.toggleCancel(false, this);
		} else {
			progress.setStatus("正在上傳...");
			progress.toggleCancel(true, this);
		}
	} catch (ex) {
		this.debug(ex);
	}
}


//單文件上傳成功更改提示信息
function uploadSuccess(file, serverData) {
	
	document.getElementById("fileValue").value = file.name;
	var infoTable = document.getElementById("notifyInfo");
	
	var infoTable = document.getElementById("notifyInfo");
	infoTable.innerHTML = "上傳成功!";
}

function addFileInfo(fileId,message){
	var infoTable = document.getElementById("notifyInfo");
	infoTable.innerHTML = message;
}
function addReadyFileInfo(fileid,fileName,message,status){
	
	//定製 -- 將生成的錯誤信息顯示到指定的區域
	var infoTable = document.getElementById("notifyInfo");
	infoTable.innerHTML = message;
	
	
	/*//用表格顯示
	var infoTable = document.getElementById("infoTable");
	var row = infoTable.insertRow();
	row.id = fileid;
	var col1 = row.insertCell();
	var col2 = row.insertCell();
	var col3 = row.insertCell();
	var col4 = row.insertCell();
	col4.align = "right";
	col1.innerHTML = message+" : ";
	col2.innerHTML = fileName;
	if(status!=null&&status!=""){
		col3.innerHTML="<font color='red'>"+status+"</font>";
	}else{
		col3.innerHTML="";
	}
	col4.innerHTML = "<a href='javascript:deleteFile(\""+fileid+"\")'>刪除</a>";
	col1.style.width="150";
	col2.style.width="250";
	col3.style.width="80";
	col4.style.width="50";*/
}

function cancelUpload(){
	var infoTable = document.getElementById("infoTable");
	var rows = infoTable.rows;
	var ids = new Array();
	var row;
	if(rows==null){
		return false;
	}
	for(var i=0;i<rows.length;i++){
		ids[i] = rows[i].id;
	}	
	for(var i=0;i<ids.length;i++){
		deleteFile(ids[i]);
	}	
}

function deleteFile(fileId){
	//用表格顯示
	var infoTable = document.getElementById("infoTable");
	var row = document.getElementById(fileId);
	infoTable.deleteRow(row.rowIndex);
	swfu.cancelUpload(fileId,false);
}

function uploadComplete(file) {
	//console.log('uploadComplete()')
	try {
		/*  I want the next upload to continue automatically so I'll call startUpload here */
		if (this.getStats().files_queued > 0) {
			this.startUpload();
		} else {
			var progress = new FileProgress(file,  this.customSettings.upload_target);
			progress.setComplete();
			progress.setStatus("<font color='red'>所有文件上傳完畢!</b></font>");
			progress.toggleCancel(false);
		}
	} catch (ex) {
		this.debug(ex);
	}
}

function uploadError(file, errorCode, message) {
	var imageName =  "<font color='red'>文件上傳出錯!</font>";
	var progress;
	try {
		switch (errorCode) {
		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
			try {
				progress = new FileProgress(file,  this.customSettings.upload_target);
				progress.setCancelled();
				progress.setStatus("<font color='red'>取消上傳!</font>");
				progress.toggleCancel(false);
			}
			catch (ex1) {
				this.debug(ex1);
			}
			break;
		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
			try {
				progress = new FileProgress(file,  this.customSettings.upload_target);
				progress.setCancelled();
				progress.setStatus("<font color='red'>停止上傳!</font>");
				progress.toggleCancel(true);
			}
			catch (ex2) {
				this.debug(ex2);
			}
		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
			imageName = "<font color='red'>文件大小超過限制!</font>";
			break;
		
		default:
			//alert(message);
			break;
		}
		
		if(message=="599"){
			var imageName =  "<font color='#475477'>同名文件已存在," +file.name+" 上傳失敗!</font>";
		}
		if(message=="588"){
			var imageName =  "<font color='#475477'>保存 "+file.name+"信息失敗 ,請重新上傳!</font>";
		}
		if(message=="566"){
			var imageName =  "<font color='#475477'>系統異常," +file.name+"上傳失敗,稍後重試!</font>";
		}if(message=="555"){
			var imageName =  "<font color='#475477'>文件名超長,上傳失敗!30個字符內!</font>";
		}
		
		addFileInfo(file.id,imageName);
	} catch (ex3) {
		this.debug(ex3);
	}

}


function addImage(src) {
	var newImg = document.createElement("img");
	newImg.style.margin = "5px";

	document.getElementById("thumbnails").appendChild(newImg);
	if (newImg.filters) {
		try {
			newImg.filters.item("DXImageTransform.Microsoft.Alpha").opacity = 0;
		} catch (e) {
			// If it is not set initially, the browser will throw an error.  This will set it if it is not set yet.
			newImg.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + 0 + ')';
		}
	} else {
		newImg.style.opacity = 0;
	}

	newImg.onload = function () {
		fadeIn(newImg, 0);
	};
	newImg.src = src;
}

function fadeIn(element, opacity) {
	var reduceOpacityBy = 5;
	var rate = 30;	// 15 fps


	if (opacity < 100) {
		opacity += reduceOpacityBy;
		if (opacity > 100) {
			opacity = 100;
		}

		if (element.filters) {
			try {
				element.filters.item("DXImageTransform.Microsoft.Alpha").opacity = opacity;
			} catch (e) {
				// If it is not set initially, the browser will throw an error.  This will set it if it is not set yet.
				element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + opacity + ')';
			}
		} else {
			element.style.opacity = opacity / 100;
		}
	}

	if (opacity < 100) {
		setTimeout(function () {
			fadeIn(element, opacity);
		}, rate);
	}
}



/* ******************************************
 *	FileProgress Object
 *	Control object for displaying file info
 * ****************************************** */

function FileProgress(file, targetID) {
	this.fileProgressID = "divFileProgress";

	this.fileProgressWrapper = document.getElementById(this.fileProgressID);
	if (!this.fileProgressWrapper) {
		this.fileProgressWrapper = document.createElement("div");
		this.fileProgressWrapper.className = "progressWrapper";
		this.fileProgressWrapper.id = this.fileProgressID;

		this.fileProgressElement = document.createElement("div");
		this.fileProgressElement.className = "progressContainer";

		var progressCancel = document.createElement("a");
		progressCancel.className = "progressCancel";
		progressCancel.href = "#";
		progressCancel.style.visibility = "hidden";
		progressCancel.appendChild(document.createTextNode(" "));

		var progressText = document.createElement("div");
		progressText.className = "progressName";
		progressText.appendChild(document.createTextNode("上傳文件: "+file.name));

		var progressBar = document.createElement("div");
		progressBar.className = "progressBarInProgress";

		var progressStatus = document.createElement("div");
		progressStatus.className = "progressBarStatus";
		progressStatus.innerHTML = " ";

		this.fileProgressElement.appendChild(progressCancel);
		this.fileProgressElement.appendChild(progressText);
		this.fileProgressElement.appendChild(progressStatus);
		this.fileProgressElement.appendChild(progressBar);

		this.fileProgressWrapper.appendChild(this.fileProgressElement);
		document.getElementById(targetID).style.height = "75px";
		document.getElementById(targetID).appendChild(this.fileProgressWrapper);
		fadeIn(this.fileProgressWrapper, 0);

	} else {
		this.fileProgressElement = this.fileProgressWrapper.firstChild;
		this.fileProgressElement.childNodes[1].firstChild.nodeValue = "上傳文件: "+file.name;
	}

	this.height = this.fileProgressWrapper.offsetHeight;

}
FileProgress.prototype.setProgress = function (percentage) {
	this.fileProgressElement.className = "progressContainer green";
	this.fileProgressElement.childNodes[3].className = "progressBarInProgress";
	this.fileProgressElement.childNodes[3].style.width = percentage + "%";
};
FileProgress.prototype.setComplete = function () {
	this.fileProgressElement.className = "progressContainer blue";
	this.fileProgressElement.childNodes[3].className = "progressBarComplete";
	this.fileProgressElement.childNodes[3].style.width = "";

};
FileProgress.prototype.setError = function () {
	this.fileProgressElement.className = "progressContainer red";
	this.fileProgressElement.childNodes[3].className = "progressBarError";
	this.fileProgressElement.childNodes[3].style.width = "";

};
FileProgress.prototype.setCancelled = function () {
	this.fileProgressElement.className = "progressContainer";
	this.fileProgressElement.childNodes[3].className = "progressBarError";
	this.fileProgressElement.childNodes[3].style.width = "";

};
FileProgress.prototype.setStatus = function (status) {
	this.fileProgressElement.childNodes[2].innerHTML = status;
};

FileProgress.prototype.toggleCancel = function (show, swfuploadInstance) {
	this.fileProgressElement.childNodes[0].style.visibility = show ? "visible" : "hidden";
	if (swfuploadInstance) {
		var fileID = this.fileProgressID;
		this.fileProgressElement.childNodes[0].onclick = function () {
			swfuploadInstance.cancelUpload(fileID);
			return false;
		};
	}
};





發佈了55 篇原創文章 · 獲贊 4 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章