繁体   English   中英

是否可以通过此设置在PHP中的ajax调用中启用文件下载?

[英]Is this set up possible to enable file download on a ajax call in PHP?

我绝不是Web开发人员。 我在GWT上做了一些工作。 我们曾经在那里进行过这种设置。 由于所有内容都存在ajax,因此每次我们进行服务器RPC调用时,我们都会显示一个进度条,当响应返回时,将在rpc / ajax的回调中关闭该进度条。

现在,我正在研究一种尝试在PHP中进行操作的工具(我仍在学习)。 我有一个看起来像这样的设置,

1:有一个HTML表单,其中包含一些字段。 实际上,我在这里需要一个文件上传选项,但是例如,让我们说有两个文本字段。

2:用户提交表单时。 我想打电话给ajax打电话说test.php,同时显示进度条出现(基本上阻塞了整个页面,但也没有刷新页面)。 当ajax响应到来时,我将关闭进度栏。

3:现在,如果服务器返回一些文本,则很容易处理,我可以使用document.getElementById在ajax回调中处理它。 但就我而言,我想做的是在服务器端使用post参数进行处理,创建一个文本文件并返回它。 然后回到客户端并关闭进度。

我编写了一个示例脚本,该脚本通过设置标头返回文件

header('内容描述:文件传输');
header('Content-Type:text / csv');
header('Content-Disposition:附件; filename ='。$ file);

因此,此php文件可以独立正常运行,当我在浏览器中打开它时,它会引发一个下载链接。 当我尝试通过ajax请求调用它时,它不返回任何内容。

谁能告诉我这种方法是否不正确?

<script>
    window.open("filedownload.php, '_self', false);
</script>

将提示用户下载文件而无需导航到新页面。

浏览器将处理下载进度显示。 这是用户会熟悉的体验。

如果要在ajax请求完成时下载文件,则将上述代码添加到XMLHttpRequest回调中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM