我的页面上有一个链接按钮,我从某个DMS系统下载文件,然后使用response.write
将服务器上的文件压缩到客户端后发送文件。
但是由于页面被ajaxified,它会引发错误。
是否可以通过Ajax电话向客户端发送文件?
答案 0 :(得分:1)
没有理由请求带有AJAX回调的文件,因为下载文件不会刷新页面,因此用户不会丢失上下文,这通常是您更喜欢AJAX回调的原因。 / p>
根据您的意见,有两种方法可以解决这个问题:
第一个对我来说似乎更合理,因为你不必处理中间存储。
答案 1 :(得分:1)
不要使用Response.Write或Response.WriteFile来强制文件下载,因为在这种情况下,这根本没有帮助。
为了做你想做的事,将压缩文件保存在磁盘上并将用户重定向到download-file。您可以创建一个临时文件夹来保存您在运行中创建的压缩文件,并每隔一小时或任何此类预定义的时间间隔刷新它们。你需要从标准的回发后驱动的非ajaxed呼叫中调用它。这将保留国家。
Response.Redirect("path-file-to-download");
Response.End();
答案 2 :(得分:0)
您可以发送您喜欢的任何数据,您只需要能够在JavaScript中处理它。
JavaScript可以用压缩文件做很多事情(除非您想在JavaScript中查找或编写zip解压缩库)。