jquery的上传 下载 文件

jsp:

<tr >
			<td bgcolor="#FFFFFF" width="15%" align="right">&nbsp;附件:</td>
		<td bgcolor="#FFFFFF" colspan="3">
		<div style="margin:3px" >
	<input class="modify_module" type="file" id="file" name="file" onchange="_addFile()"/>
	<table id="fileList" border="0" cellspacing="0" cellpadding="0"style="background-color:#FFF;">
	<c:if test="${!empty files}">	
	 <c:forEach items="${files}" step="1" var="file" varStatus="status">	
								 <tr>
	<td class="td_l td_file" align="left" height="30px" id="${file.uuid }">
	<a href="javascript:void(0)" name="uploadFileName" onclick="_downLoad('${file.uuid }','${file.url }','${file.name }')">${file.name }</a>
	&nbsp;&nbsp;<a class="modify_module" href="javascript:void(0)" name="deleteFile" onclick="_delete('${file.uuid }','${file.url }','${file.name }')">[删除]</a>
								</td>
												    </tr>
											    </c:forEach>
						               		</c:if>
								        </table>
								    </div>
								</td>
							</tr>

js:

//即时上传文件
function _addFile(){
	var length=$("#fileList tr").length;
	if(length>=5){
		$.messager.alert("提示","最多只能上传5张附件","warning");
		return ;
	}
	
	
	$.ajaxFileUpload({
	    url: context+'/checkresult/checkresult_uploadFile.do', 
	    type: 'post',
	    secureuri: false, //一般设置为false
	    fileElementId: "file", // 上传文件的id、name属性名
	    dataType: 'json', //返回值类型,一般设置为json、application/json
	    data:{groupUUID : $("#td_groupuuid1").val()}, //传递参数到服务器
	  
	    success: function(data, status){
	    	if (data.status == "success") {
    			var fileUUID = data.fileUUID;
	    		var url = data.url;
	    		var name = data.fileName;
	    		var tr_str = "<tr><td class='td_l td_file' align='left' height='30px' id=\""+fileUUID+"\"></td></tr>"
	    		$('#fileList').append(tr_str);
	    		var a_str = "<a href='javascript:void(0)' name='uploadFileName' onclick='_downLoad(\""+fileUUID+"\",\""+url+"\",\""+name+"\")'/>"+name+"</a>";
	    		a_str += "&nbsp;&nbsp;<a class='modify_module' href='javascript:void(0)' name='deleteFile' onclick='_delete(\""+fileUUID+"\",\""+url+"\",\""+name+"\")'>[删除]</a>";
	    		document.getElementById(fileUUID).innerHTML = a_str;
	    		$.messager.alert("提示","上传成功","info");
	    	} else {
	    		$.messager.alert("提示","上传失败","warning");
	    	}
	    },
	    error: function(data, status, e){ 
	        $.messager.alert("提示","上传失败","error");
	    }
	});
}
//删除文件
function _delete(fileUUID, url, name){
	$.ajax({
		cache: true,
		type: "POST",
		url: context+"/base/file_deleteFile.do",
		dataType:'json',
		data:{fileUUID:fileUUID, url:url, fileName:name},
		async: true,
		error: function(request) {
			$.messager.alert("提示","删除失败","warning");	
		},
		success: function(data) {
			$("#"+fileUUID).parent().remove();
			$.messager.alert("提示","删除成功","info");
		}
	});
}
//下载文件
function _downLoad(fileUUID, url, name){
	var url = escape(escape(url));
	var name = escape(escape(name));
	var urlstr = context+"/base/file_downLoadFile.do?fileUUID="+fileUUID+"&url="+url+"&fileName="+name;
	window.location.href = urlstr;
	return;
}

ACTION:

public void uploadFile(){
		Map msg = new HashMap();
		File destFile = null;
		try {
			FileInputStream fis = new FileInputStream(getFile());        
			//String checkPath = request.getParameter("checkPath");
			String rootPath = SaveAndroidSubmitFileUtil.FILE_PATH;
			String dirPath = Configuration.getString("CHECK_RESULT") + DateUtil.getCurrentDate("yyyyMMdd") + "/";
			File dir = new File(rootPath + dirPath);
			if (!dir.exists()) {
				dir.mkdirs();
			}
			String[] strs = fileFileName.split("\\.");
			String fileUUID = StringUtil.getUniqueNo();
			String newFileName = fileUUID + "." + strs[1];
			String filePath = dirPath + newFileName;
			destFile = new File(rootPath + dirPath, newFileName);
			FileUtil.copyFile(file, destFile);

			String groupUUID = request.getParameter("groupUUID");
			msg.put("fileUUID", fileUUID);
			msg.put("groupUUID", groupUUID);
			msg.put("fileName", fileFileName);
			msg.put("type", fileService.getFileType(strs[1]));
			msg.put("url", filePath);
			msg.put("is_valid", "1");
			fileService.insertFile(msg);
			msg.put("status", "success");
			JSONObject json = JSONObject.fromObject(msg);
			response.getWriter().write(json.toString());
		} catch (Exception e) {
			e.printStackTrace();
			if(destFile!=null && destFile.exists()){
				destFile.delete();
			}
			try {
				msg.put("status", "error");
				JSONObject json = JSONObject.fromObject(msg);
				response.getWriter().write(json.toString());
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
	}
public void deleteFile(){
		Map msg = new HashMap();
		try {
			String fileUUID = request.getParameter("fileUUID");
			String url = request.getParameter("url");
			String fileName = request.getParameter("fileName");
			if (fileName != null && fileName.indexOf("%") >= 0) {
				fileName = Escape.unescape(Escape.unescape(fileName));
			}
			if (url != null && url.indexOf("%") >= 0) {
				url = Escape.unescape(Escape.unescape(url));
			}
			String rootPath = SaveAndroidSubmitFileUtil.FILE_PATH;
			File destFile = new File(rootPath + url);
			if(destFile.exists()){
				fileService.deleteFile(fileUUID);
				destFile.delete();
				msg.put("status", "success");
				
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				JSONObject json = JSONObject.fromObject(msg);
				response.getWriter().write(json.toString());
			} catch (IOException e1) {
				e1.printStackTrace();
			}
		}
	}
public String downLoadFile() {
		String url = request.getParameter("url");
		String fileName = request.getParameter("fileName");
		if (fileName != null && fileName.indexOf("%") >= 0) {
			fileName = Escape.unescape(Escape.unescape(fileName));
		}
		if (url != null && url.indexOf("%") >= 0) {
			url = Escape.unescape(Escape.unescape(url));
		}
		response.setContentType("images/jpeg");
		response.setHeader("Pragma", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);

		try {
			// 这个就就是弹出下载对话框的关键代码
			response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
			String rootPath = SaveAndroidSubmitFileUtil.FILE_PATH;
			File resFile = new File(rootPath + url);
			InputStream input = new FileInputStream(resFile);
			ServletOutputStream out = response.getOutputStream();
			byte[] buffer = new byte[1024];
			int i = 0;
			while ((i = input.read(buffer)) != -1) {
				out.write(buffer, 0, i);
			}
			input.close();
			out.flush();
			out.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

 

转载于:https://my.oschina.net/u/3053442/blog/826072

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值