[英]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.