jQuery.Ajax下载文件

jQuery.Ajax下载文件


下面是一个使用插件源代码的简单用例演示。 演示页面包含了许多其他的'更好的用户界面'示例。

$.fileDownload('some/file.pdf')
. done(function () { alert('File download a success!'); })
. fail(function () { alert('File download failed!'); });

你不能,也不需要通过Ajax进行这里操作。 只使用

window.location="download.action?para1=value1...."

1 。不受框架影响的:Servlet下载文件作为附件


 href="javascript:window.location='downloadServlet?param1=value1'">
 download


 href="downloadServlet?param1=value1"> download

2.Struts2 框架︰行动下载文件作为附件


 href="javascript:window.location='downloadAction.action?param1=value1'">
 download


 href="downloadAction.action?param1=value1"> download

最好是使用 标记指向 OGNLurl创建标签:

 
 action="downloadAction.action" var="url">
  name="param1">value1

 href="%{url}"> download

在上述情况下,需要Content-Disposition响应头,指定需要下载的文件( attachment ) ( inline ) 而不是打开的浏览器。需要指定内容类型,你可能希望添加文件名和( 帮助浏览器绘制真实的progressbar ) 长度。

例如下载ZIP时:

response.setContentType("application/zip");
response.addHeader("Content-Disposition", 
"attachment; filename="name of my file.zip"");
response.setHeader("Content-Length", myFile.length());//or myByte[].length...

直接与 Struts2 ( 除非你将这里操作用作一个 Servlet,否则将使用一个 hack 作为直接流编辑器,例如), 你不需要写任何响应,仅仅使用流结果类型 struts.xml 和配置它将工作: 示例

 name="success" type="stream">
  name="contentType">application/zip
  name="contentDisposition">attachment;filename="${fileName}"
  name="contentLength">${fileLength}

3 。框架不可知(/Struts2 框架): Servlet(/Action) 在浏览器中打开文件

如果你想在浏览器里打开文件,下载它,而是在 Content-disposition必须设置为内联,但目标不能当前窗口位置;你必须目标javascript创建的一个新窗口,一个