function download() {
// 请求地址
var url = "${baseURL}/portal/visitorrecord/visitorrecordPortalAction!uploadSignatureByWorkno.action";
// 分装form表单
var form = $("<form></form>").attr("action", url).attr("method", "post");
// 封装参数
form.append($("<input></input>").attr("type", "hidden").attr("name", "outPutPdf").attr("value", outPutPdf));
form.append($("<input></input>").attr("type", "hidden").attr("name", "fileName").attr("value", fileName));
// 提交
form.appendTo('body').submit().remove();
}
后台:
public void uploadSignatureByWorkno() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
//获取PDF模板路径
String outPutPdf = request.getParameter("outPutPdf");
if (outPutPdf != null && !"".equals(outPutPdf)) {
// 下载本地文件
String fileName = request.getParameter("fileName"); // 文件的默认保存名
//System.out.println(fileName);
// 读到流中
InputStream inStream = new FileInputStream(outPutPdf);// 文件的存放路径
// 设置输出的格式
response.reset();
String userAgent = request.getHeader("User-Agent");
// 针对IE或者以IE为内核的浏览器:解决中文乱码问题
if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {
fileName = java.net.URLEncoder.encode(fileName, "UTF-8");
} else {
// 非IE浏览器的处理:
fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1");
}
response.setHeader("Content-disposition",
String.format("attachment; filename=\"%s\"", fileName));
response.setContentType("application/pdf;charset=utf-8");
response.setCharacterEncoding("UTF-8");
// 循环取出流中的数据
byte[] b = new byte[100];
int len;
try {
OutputStream out = response.getOutputStream();
while ((len = inStream.read(b)) > 0)
out.write(b, 0, len);
inStream.close();
out.flush();
out.close();
} catch (IOException e) {
LOGGER.error("文件下载出现异常Exception!", e);
}
} else {
try {
throw new Exception("未找到文件");
} catch (Exception e) {
LOGGER.error("未找到上传的文件!");
}
}
}