js代码:
function downloadFujian() {
$('#fileDetailForm').form('submit', {
url : basePath+'/ResourceController/uploadFile',
success : function(result) {
var data = eval('('+result+')');
if(data==1){
$.messager.alert("提示","下载成功!","确定",function(){
});
}else{
$.messager.alert("提示","下载失败!","确定",function(){
});
}
}
})
}
form代码:
<form action="" id="fileDetailForm">
<table class="tableStyle">
<tr>
<td width="35%"><span style="color:red">*</span>文件名称:</td>
<td width="64%">
<input style="width: 350px;" class="easyui-textbox" id="fileName" name="fileName" >
</td>
</tr>
<tr>
<td>附件:</td>
<td><input style="width: 290px;" class="easyui-textbox" id="uploadFileName" name="uploadFileName" readonly="readonly">
<a href="javascript:downloadFujian();" id="uploadFile">点击下载</a></td>
</tr>
</table>
</form>
ResourceController.java代码:
@RequestMapping("/uploadFile")
@ResponseBody
public String uploadFile(HttpServletResponse response,HttpServletRequest request)
String returnString="1";
String fileName=request.getParameter("uploadFileName");
String dir = request.getRealPath("/") + File.separator+ "path";
String filePath = dir + File.separator + fileName;
try {
FileUtil.downloadFile(response, filePath, fileName);
ActionUtil.outData(response, "1");
} catch (Exception e) {
e.printStackTrace();
ActionUtil.outData(response, "2");
}
return returnString;
}
FileUtil.java
public static String downloadFile(HttpServletResponse response, String filePath,String fileName) throws IOException {
String returnString="";
try{
// path是指欲下载的文件的路径。
File file = new File(filePath);
// 取得文件名。
String filename =fileName;
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(filePath));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
returnString="1";
}catch(Exception e){
e.printStackTrace();
returnString="0";
}
return returnString;
}
ActionUtil.java代码:
public static void outData(HttpServletResponse response, Object data) {
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
try {
PrintWriter out = response.getWriter();
out.print(data);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}