gpt4 book ai didi

javascript - 将 JavaScript ID 值传递给 PHP 进行下载

转载 作者:行者123 更新时间:2023-11-28 01:45:17 26 4
gpt4 key购买 nike

我对 PHP 很陌生,但我学得很快。我一直在尝试使用 AJAX 将 ID 传递给 PHP。有了这个 ID,我可以使用 SQL 从数据库中获取文件的路径,然后使用它来下载文件。然而,经过一些研究,这是不可能的,我无法理解替代方案......也许有解决方法?

这些是我的 JavaScript 函数;我使用 JSON 是因为我传递了一个 ID 数组,因为我打算在将来使用它进行多次下载。我通过单击表行获取 ID。

$('.btnDownload').click(function() {
$.ajax({
url: 'scripts/downloadFile.php',
type: "POST",
data: {id: JSON.stringify(fileID)}
});
});

我的 PHP 尝试下载文件;

<?php
$data = $_POST['id'];
$data = json_decode("$data", true);
$countArray = count($data);
$counter = 0;
while($countArray > $counter){
$getID = $data[$counter];
// My sql connections and queries, jumped to the fetch part
$filePath = $fetch['filePath'];
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename='.basename($filePath));

readfile($filePath);
exit;
$counter++;
}
?>

当我给出静态路径并使用浏览器运行它时,这个脚本如何单独工作。我需要一些关于实现结果的替代方案的帮助。

最佳答案

要解决与弹出窗口未弹出相关的问题,请尝试这样的方法而不是ajax:

$('.btnDownload').click(function(event) {
var url = 'scripts/downloadFile.php?id=' + JSON.stringify(fileID);
window.location.href = url;
event.preventDefault();
})

用户应该看到一个“保存文件”对话框,并且由于 php 文件设置的配置 header ,浏览器将保留在相同的 URL 上。

关于javascript - 将 JavaScript ID 值传递给 PHP 进行下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402191/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com