Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 不使用表单发布,然后下载文件_Php_Ajax - Fatal编程技术网

Php 不使用表单发布,然后下载文件

Php 不使用表单发布,然后下载文件,php,ajax,Php,Ajax,我正在使用ajax发布,但ajax不会触发文件下载。 我需要在不使用表单的情况下发布,因为我使用了页面上许多元素的值,所以我创建了一个javascript函数来获取这些值,并创建一个数组,然后发布到php目标文件。 如何发布这些值并触发下载文件,而不使用表单提交,而是收集元素值并将其发送到目标php页面? Javascript解析内容并创建一个值数组,然后发布到PHP: ['Jordan','22','Male','Other Info'] PHP文件使用该数组将这些值插入DOCX(文档),然

我正在使用ajax发布,但ajax不会触发文件下载。

我需要在不使用表单的情况下发布,因为我使用了页面上许多元素的值,所以我创建了一个javascript函数来获取这些值,并创建一个数组,然后发布到php目标文件。

如何发布这些值并触发下载文件,而不使用表单提交,而是收集元素值并将其发送到目标php页面?


Javascript解析内容并创建一个值数组,然后发布到PHP:

['Jordan','22','Male','Other Info']
PHP文件使用该数组将这些值插入DOCX(文档),然后返回下载URL,请注意,该文件未保存在服务器中。

以下是ajax帖子的答案:

Access-Control-Allow-Origin:*
Cache-Control:max-age=0, no-cache, no-store, must-revalidate
Connection:Keep-Alive
Content-Description:File Transfer
Content-Disposition:attachment; filename="modelos/calculos/tempo_contribuicao_2014-11-12.docx"
Content-Length:18943
Content-Transfer-Encoding:binary
Content-Type:application/vnd.openxmlformats-officedocument.wordprocessingml.document
Date:Wed, 12 Nov 2014 15:57:39 GMT
Expires:Wed, 11 Jan 1984 05:00:00 GMT
Keep-Alive:timeout=15, max=98
Pragma:no-cache
Server:Apache/2.0.63 (FreeBSD) PHP/5.2.6 with Suhosin-Patch
Vary:User-Agent
X-Powered-By:PHP/5.2.6

您可以通过以下方式实现相同的目标:

步骤1:首先,发送Ajax请求,将参数发布到服务器

步骤2:使用PHP在服务器上生成文件&返回文件名


步骤3:在ajax成功回调中,只需使用
location.href='?filename=fname'
//据我所知,在ajax中是不可能的。事实并非如此,您知道仅使用PHP如何实现这一点吗?请检查,但我如何传递参数?给出代码和您想要实现的目标。服务器端代码。如果不将文件保存到服务器上,就无法实现这一点?即使只使用PHP而不使用表单提交?我不确定,但如果您遵循这些步骤,您将在下载后删除文件。@BernardoLima您只需要一个指向PHP文件的链接,它将输出任何文件。有了正确的标题和mime,你可以在点击链接后强制下载。@BernardoLima,我同意@itachi。但是,
location.href
如果您使用的是正确的mime类型和头,则不会重定向您。如何向用户显示该文件取决于您自己。@BernardoLima在下载该文件的页面中。因为涉及到两个PHP。一个是生成文件,另一个是下载文件。您需要在第二个文件中使用headers/mime。