我正在使用图片选择器插件来选择图像然后强制下载。我努力编写PHP,它按预期工作。下载弹出窗口,我设法查看该文件。我不确定为什么它在AJAX中不起作用。我错过了什么?
//get the image-source or URL
function getImageSrc()
{
var req = $("div[class='thumbnail selected']").children('img');
var imagessource = [];
$(req).each(function (datakey, datavalue) {
src = $(datavalue).attr('src');
imagessource.push(src);
});
return(imagessource);
}
这是我点击按钮
的时候 $("#download_media").click(function() {
var file = getImageSrc();
$.ajax({
type: 'POST',
url: '?page=downloadController&action=downloadMedia',
data: {'file_url': file},
success: function(data) {
console.log("success");
}
});
});
我的PHP文件
public function downloadMediaAction()
{
//get the file_url
$file = $this->getRequest()->('file_url');
header("Content-Description: File Transfer");
header("Content-Type: application/octet-stream");
header('Content-Disposition: attachment; filename="'.basename($file).'"');
readfile($file);
}
答案 0 :(得分:0)
好的,然后从您的AJAX请求中返回要下载的文档的URL,如:
{'url':'http://server:port/path/to/file.php?id=x'}
然后使用javascript
document.location='http://server:port/path/to/file.php?id=x';
调用您的方法:public function downloadMediaAction()
要确保浏览器下载,请将此行添加到downloadMediaAction()
:
header("Content-Type: application/force-download");