您的位置:首页 > 其它

表单文件上传下载ajax方式返回值

2016-06-28 15:47 260 查看
页面引入:jquery-form.js

function importSaleOrder(){

var file=$("#file").val();
if(file!=""){
$("#errorInfo").html("");
$("#downErrorFile").hide();
var form = $("form[id=importSaleOrderFrom]");
var options  = {
url:ctx+'/warehouse-out/importBatchWhoutSaleOrder.jhtml',
type:'post',
success:function(data)
{
var fileName = data.filePath;
var errors = data.errors;
$("#errorInfo").html(errors);
$("#downErrorFile").show();
$("#downErrorFile").attr("href",ctx+'/warehouse-out/downloadExcel.jhtml?fileFileName='+fileName);
}
};
form.ajaxSubmit(options);
}else{
alert("请选择文件!");
}

}

下载:
public String downloadExcel(){
String realPath = ServletActionContext.getServletContext().getRealPath("/")+"/upload";
File file = new File(realPath,fileFileName);
downloadExcel(file, response);
return null;
}

/**
* 报表文件下载
* @param file
* @param response
*/
public void downloadExcel(File file, HttpServletResponse response) {
try {
// 取得文件名。
String filename = file.getName();
String userAgent = request.getHeader("USER-AGENT");
String finalFileName = null;
if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器
finalFileName = URLEncoder.encode(filename,"UTF8");
}else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器
finalFileName = new String(filename.getBytes(), "ISO8859-1");
}else{
finalFileName = URLEncoder.encode(filename,"UTF8");//其他浏览器
}
// 以流的形式下载文件。
InputStream fis = new BufferedInputStream(new FileInputStream(file));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.addHeader("Content-Disposition", "attachment;filename="
+ finalFileName);
response.addHeader("Content-Length", "" + file.length());
OutputStream toClient = new BufferedOutputStream(
response.getOutputStream());
response.setContentType("application/vnd.ms-excel;charset=gb2312");
toClient.write(buffer);
toClient.flush();
toClient.close();

} catch (IOException ex) {
ex.printStackTrace();
}
if(file.exists()){
file.delete();
}
}

<form id="importSaleOrderFrom" action="${pageContext.request.contextPath}/warehouse-out/importBatchWhoutSaleOrder.jhtml" method="post" enctype="multipart/form-data">

<div class="col-md-7">
<div class="form-group">
<input id="file" type="file" name="file" onchange="clearForm()" >
</div>
<input type="button" value="导入解析"  onclick="importSaleOrder()" />

<label id="errorInfo" style="margin-left:20px;color: red;"></label>
<a href="#" style="display: none" id="downErrorFile" style="margin-left:40px;">下载文件</a>
</div>
</form>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: