用form表单的submit实现下载功能
需求:需要下载一个文件,如果文件存在则下载,不存在则弹出一个alert提示文件正在生成
前台jsp:
<form id=""
action="${ pageContext.request.contextPath}/downloadRegressionTesting.action"
method="post">
<input type="submit" name="submit" value="下载回归测试报告"
onclick="downloadRegressionTesting()" />
</form>
function downloadRegressionTesting(){
$.ajax({
type : "post",
url:"${pageContext.request.contextPath}/downloadRegressionTesting.action",
success : function(datas){
ajaxobj=eval("("+datas+")");
alert(ajaxobj.wait);
}
});
}
后台controller:
@RequestMapping("/downloadRegressionTesting")
@ResponseBody
public void downloadRegressionTesting(HttpServletRequest request,
HttpServletResponse response) throws IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
File report = new File("XXXXXX\\sdkfjdlkfjslfjlk.xls");
if (report.exists()) {
String path = "XXXXXX\\sdkfjdskfldslkfslkfjslfjlk.xls";
File file = new File(path);
String filename = file.getName();
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(
filename.replaceAll(" ", "").getBytes("utf-8"),
"iso8859-1"));
response.addHeader("Content-Length", "" + file.length());
OutputStream os = new BufferedOutputStream(
response.getOutputStream());
response.setContentType("application/octet-stream");
String str = buffer.toString();
System.out.println(str);
System.out.println(buffer);
os.write(buffer);
os.flush();
os.close();
} else {
String wait = "{\"wait\":\"回归测试还在进行,请耐心等待\"}";
PrintWriter out = response.getWriter();
out.write(wait);
out.close();
}
}
上面代码可以实现下载,并且在没有文件的时候会提示一个alert,但是提示完之后会跳转到一个新的白页面。
试过用onsubmit="return false();",这样不会跳转页面,但是也不能下载,如果用onsubmit="return downloadRegressionTesting();",则会提示两次alert,可以下载也不跳转,如果将submit改成button也不会跳转页面,但是同样不能下载,请教下如何能实现需求
前台jsp:
<form id=""
action="${ pageContext.request.contextPath}/downloadRegressionTesting.action"
method="post">
<input type="submit" name="submit" value="下载回归测试报告"
onclick="downloadRegressionTesting()" />
</form>
function downloadRegressionTesting(){
$.ajax({
type : "post",
url:"${pageContext.request.contextPath}/downloadRegressionTesting.action",
success : function(datas){
ajaxobj=eval("("+datas+")");
alert(ajaxobj.wait);
}
});
}
后台controller:
@RequestMapping("/downloadRegressionTesting")
@ResponseBody
public void downloadRegressionTesting(HttpServletRequest request,
HttpServletResponse response) throws IOException {
request.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
File report = new File("XXXXXX\\sdkfjdlkfjslfjlk.xls");
if (report.exists()) {
String path = "XXXXXX\\sdkfjdskfldslkfslkfjslfjlk.xls";
File file = new File(path);
String filename = file.getName();
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
response.addHeader("Content-Disposition", "attachment;filename="
+ new String(
filename.replaceAll(" ", "").getBytes("utf-8"),
"iso8859-1"));
response.addHeader("Content-Length", "" + file.length());
OutputStream os = new BufferedOutputStream(
response.getOutputStream());
response.setContentType("application/octet-stream");
String str = buffer.toString();
System.out.println(str);
System.out.println(buffer);
os.write(buffer);
os.flush();
os.close();
} else {
String wait = "{\"wait\":\"回归测试还在进行,请耐心等待\"}";
PrintWriter out = response.getWriter();
out.write(wait);
out.close();
}
}
上面代码可以实现下载,并且在没有文件的时候会提示一个alert,但是提示完之后会跳转到一个新的白页面。
试过用onsubmit="return false();",这样不会跳转页面,但是也不能下载,如果用onsubmit="return downloadRegressionTesting();",则会提示两次alert,可以下载也不跳转,如果将submit改成button也不会跳转页面,但是同样不能下载,请教下如何能实现需求
...全文
相关推荐
微信小程序简单实现form表单获取输入数据功能示例
本文实例讲述了微信小程序简单实现form表单获取输入数据功能。分享给大家供大家参考,具体如下: 1、效果展示 2、关键代码 index.wxml <form bindsubmit="formBindsubmit" bindreset="formReset"> 用户名: <input name="userName" placeholder="请输入用户名!" /> 密码: <inp
Jquery提交表单 Form.js官方插件介绍
先说说常用的Form插件,支持Ajax,支持Ajax文件上传,功能强大,基本满足日常应用。 1、最新JQuery框架软件包下载 jquery.js压缩包 jquery.js非压缩包 2、Form插件下载 form.js 3、Form插件的简单入门 第一步:先增加一个表单 代码: 代码如下: <form id=”myForm” action=”comment.php” method=”post”> Name: <input type=”text” name=”name” /> Comment: <textarea name=”comment”></textarea> <input type=”
JQuery提交表单Form.js官方插件介绍借鉴.pdf
JQuery提交表单Form.js官方插件介绍借鉴.pdf
jquery.form.js用法之清空form的方法
主要介绍了jquery.form.js清空form的方法,需要的朋友可以参考下
jquery表单验证插件
jquery表单验证插件


