AJAX+;PHP+;下载mPDF生成的文件
我正在创建一个应用程序,用户可以在其中查看表格中呈现给他的许多PDF文件。每一行也有复选框,允许用户检查或不检查我将在后面描述的下一个操作 这些复选框位于表单标记中,之后有一个提交按钮,通过POST方法通过AJAX请求将数组中的所有文件ID发送到PHP文件 AJAX请求如下所示:AJAX+;PHP+;下载mPDF生成的文件,php,jquery,ajax,mpdf,Php,Jquery,Ajax,Mpdf,我正在创建一个应用程序,用户可以在其中查看表格中呈现给他的许多PDF文件。每一行也有复选框,允许用户检查或不检查我将在后面描述的下一个操作 这些复选框位于表单标记中,之后有一个提交按钮,通过POST方法通过AJAX请求将数组中的所有文件ID发送到PHP文件 AJAX请求如下所示: $.ajax({ url: link, type: 'POST', data: $(this).serialize(), success: function(result) {
$.ajax({
url: link,
type: 'POST',
data: $(this).serialize(),
success: function(result) {
if (result == 'ok') {
if (redirect) {
window.location.replace(redirect);
} else {
window.location.reload();
}
} else {
if (callback) {
$('#' + callback).html('<div>' + result + '</div>');
} else {
alert(result);
}
}
}
});
作为总结,不是提示对话框+下载-奇怪的字符覆盖回调区域
如果你们知道发生了什么,在这个特定的场景中我应该做什么,我将很高兴得到帮助。此外,如果您建议我在用户下载文件后如何删除该文件,甚至取消提示对话框,使文件不再留在服务器上,我将更加感激。您需要从ajax返回指向文件的链接
$file = __PATH_TO_FILE__ . 'MaJjYzA4OGE4N2Q0MjUwNmJkZDQ0ZmZm.pdf'; //file which in fact exists
echo $file;
在ajax成功中,您只需打开一个新窗口即可访问该文件
success: function(file) {
window.open(file);
}
另一个解决方案是使用隐藏的下载链接
success: function(file) {
$('body').append('<a href="'+file+'" class="hiddenLink" download style="display:none;"></a>');
$('.hiddenLink').trigger('click');//or $('.hiddenLink')[0].click();
}
成功:函数(文件){
$('body')。追加('');
$('.hiddenLink')。触发器('click');//或$('.hiddenLink')[0]。单击();
}
这对我很有效
成功:功能(响应){
i++;
$('#buttonid')。附加('');
如果(i==1){
$('.hiddenlink')[0]。单击();
}否则{
i=0;
$('.hiddenlink').remove();
}
}
那么您将pdf文件附加到html页面,您期望得到什么?现在-期望收到任何帮助和建议我应该更改什么从readfile($file)中删除返回并检查。@suraj-在我这样做之后,只是什么都没发生检查此链接可能对您有帮助我会马上检查有更改,但web浏览器正在阻止弹出窗口。那么如何实现下载对话框窗口呢?什么是下载对话框窗口?下载提示窗口,这样用户就可以将文件保存到自己的计算机上,很高兴能有所帮助
success: function(file) {
$('body').append('<a href="'+file+'" class="hiddenLink" download style="display:none;"></a>');
$('.hiddenLink').trigger('click');//or $('.hiddenLink')[0].click();
}