繁体   English   中英

PHP-Ajax强制下载

[英]PHP-Ajax force download

我试图允许用户通过将数据数组保存到文件来保存进度。 我知道我可以通过更改标题来强制php下载,但是我正在用ajax调用来调用php脚本,该调用需要响应才能重新启用按钮。我最想禁用按钮的原因是jquery有收集大量数据发送到脚本,这需要花费几秒钟的时间。 我在下面发布了我的代码,该代码仅保存本地文件。 理想情况下,我只想“保存到”对话框,然后让Ajax知道就可以了。

所以我可以强制下载并仍然回显json数据响应吗?

再次谢谢你,托德

require_once('../FirePHPCore/fb.php');
session_start();

/* Initialize an ajax pessimistic response object. */
$ResponseData = array
(
    'Success' => false,
    'Message' => 'There was an error saving your chart right now. Please try again later.'
);

// assemble the final array to save to disk 
$finalArray                   = array();
$finalArray['colorChart']     = $_POST['colorChart'];
$finalArray['threadBrand']    = $_POST['threadBrand'];
$finalArray['chartName']      = $_POST['chartName'];
$finalArray['stitchChart']    = $_POST['stitchChart'];

file_put_contents('array.txt', serialize($finalArray));

$ResponseData['Success'] = true;
$ResponseData['Message'] = 'Saved.';
/* Output the response data in JSON. */
echo json_encode($ResponseData);

您的AJAX调用可以使PHP准备要下载的文件,然后返回临时文件的文件名。

然后,JavaScript可以将浏览器重定向到临时文件。 如果设置了适当的标题,则将下载文件,并且浏览器窗口保持不变。

暂无
暂无

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

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