【发布时间】:2020-04-26 15:35:26
【问题描述】:
我的网站在大多数情况下都使用 ajax。我允许用户通过 ajax 上传图片。当用户单击按钮时,图像通过 ajax 调用以模态显示。
现在,我希望用户在不关闭模式或刷新的情况下通过单击图像开始下载。我确实尝试过使用href。它工作得很好,但正如我所提到的,我想让用户在同一个页面上保持模式打开。
到目前为止我尝试过的代码是:
$(document).ready(function(){
var imgname;
imgname = '';
$("#modalimage").click(function(){
imgname = $("#downloadimg").val();
downloadImage(imgname);
})
})
function downloadImage(imagename){
$.ajax({
type : "POST",
url : "download.php",
data : { imagename : imagename } ,
success : function(response){
alert('success');
}
})
}
download.php代码为:
if ( isset($_POST['imagename']) ) {
$filename = $_POST['imagename'];
$filepath = 'images/'.$filename;
}
echo $filepath;
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename=' . basename($filepath));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
readfile($filepath);
这里的问题是,当 ajax 调用 download.php 时,它会以一些二进制代码和小图像代码的形式创建响应,而不会启动下载。可以通过ajax调用下载图片吗?
【问题讨论】:
-
据我了解,你想通过AJAX上传图片文件,对吧?
-
我已经用 ajax 调用上传了图像。现在我想通过 ajax 调用来下载该图像
-
好的,所以您希望您的用户能够通过 AJAX 下载图像文件,对吧?
-
我这里没有显示重定向代码...我想通过制作 ajax 来下载...我想我没有把我的问题说清楚