Javascript 从ajax请求下载PHP readfile,显示二进制文件
我试图让我的php脚本下载一个图像,该图像的名称是从javascript中的ajax函数发送的,我认为我使用了所有正确的标题,然后我使用readfile()下载图像,当我预览php时,它使用chrome开发工具运行(ctrl+shift+I->network->XHR->preview)我得到的只是一堆乱七八糟的二进制文件,而我的图片没有下载。有人知道为什么会发生这种情况/如何解决吗 这是我的ajax,它只是在单击“下载”按钮时运行的函数中Javascript 从ajax请求下载PHP readfile,显示二进制文件,javascript,php,jquery,ajax,google-chrome,Javascript,Php,Jquery,Ajax,Google Chrome,我试图让我的php脚本下载一个图像,该图像的名称是从javascript中的ajax函数发送的,我认为我使用了所有正确的标题,然后我使用readfile()下载图像,当我预览php时,它使用chrome开发工具运行(ctrl+shift+I->network->XHR->preview)我得到的只是一堆乱七八糟的二进制文件,而我的图片没有下载。有人知道为什么会发生这种情况/如何解决吗 这是我的ajax,它只是在单击“下载”按钮时运行的函数中 $.ajax({ type: "POST",
$.ajax({
type: "POST",
url: 'requestAJAX.php',
data: {request: request, download: imageName},
success: function(){
console.log("Request Completed: " + request);
} // success
});
这是我的“requestAJAX.php”
提前感谢您的帮助 这对你有帮助吗?到目前为止,我从您的代码中看到的是一种很好的方式,但是您要求二进制数据(
头(
),而在success函数中您对它什么也不做。它不会从二进制数据本身变成客户端下载..为什么要用这么长的过程来下载呢.在html中使用download prop:下面是一个例子:一切看起来都是正确的。JPEG图片是二进制的,您正在指示浏览器将其作为任意二进制数据处理(内容类型:application/octet stream
)?到目前为止,我从您的代码中看到的是一种很好的方式,但是您要求二进制数据(头(
),而在success函数中您对它什么也不做。它不会从二进制数据本身变成客户端下载..为什么要用这么长的过程来下载呢.在html中使用download prop:下面是一个例子:一切看起来都是正确的。JPEG图片是二进制的,您正在指示浏览器将其作为任意二进制数据处理(内容类型:application/octet stream
)。
<?php
switch ($_POST["request"]) {
case "download":
// Get parameters
$file = $_POST["download"];
$filepath = "UploadedImages/" . $file;
if(file_exists($filepath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.$file.'"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($filepath));
ob_clean();
flush();
// download
readfile($filepath);
exit;
} // if
break;
default:
echo "No request was made";
}
?>
ÿØÿàJFIFHHÿâ@ICC_PROFILE0appl mntrRGB XYZ ÙacspAPPLapplöÖÓ-appldscmòdescüogXYZlwtptrXYZbXYZ¨rTRC¼cprtÌ8chad,gTRC¼bTRC¼mlucenUS&~esES&daDK.êdeDE,¨fiFI(ÜfrFU(*itIT(VnlNL(nbNO&ptBR&svSE&jaJPRkoKR@zhTWlzhCNÔruRU"¤plPL,ÆYleinen RGB-profiiliGenerisk RGB-profilProfil Générique RVBN, RGB 0×0í0Õ0¡0¤0ëu( RGB r_icÏðPerfil RGB GenéricoAllgemeines RGB-Profilfn RGB cÏðeNöGenerel RGB-beskrivelseAlgemeen RGB-profielÇ|¼ RGB Õ¸\ÓÇ|Profilo RGB GenericoGeneric RGB Profile1I89 ?@>D8;L RGBUniwersalny profil RGBdescGeneric RGB ProfileGeneric RGB ProfileXYZ Zu¬s4XYZ óRÏXYZ tM=îÐXYZ (¸6curvÍtextCopyright 2007 Apple Inc., all rights reserved.sf32BÞÿÿó&ýÿÿû¢ÿÿý£ÜÀlÿáExifMM*JR(iZHH é ¡ÿÛC