当前位置: 首页 > 知识库问答 >
问题:

PHP强制下载[重复]

子车高歌
2023-03-14

我是php和ajax的新手。我试图从文档列表中强制下载文件。单击按钮后使用ajax调用触发以下功能。

function downloadDocument($filename) {

$file_path = ".........../DocUploader/Uploads/" . $filename;

if (file_exists($file_path)) {
    
    header("Content-Description: File Transfer");
    header("Content-Type: application/json");

    header("Content-Disposition: attachment; filename=\'" . $filename);

    readfile($file_path);


} else{
    echo "Document does not exist";
}};

我假设我得到的是文件内容作为响应,而不是下载文件。如果能给我一些建议,我将不胜感激。

共有1个答案

丘华翰
2023-03-14

在发送任何标头之前,首先删除任何回显或输出到浏览器,即。删除回显“文件存在”;

文件名应该封装在引号中,即。Content-Dispostion:附件;文件名="filename.ext"

<?php
header("Content-Description: File Transfer");
header("Content-Type: application/json"); 
header('Content-Disposition: attachment; filename="'. $filename .'"');

readfile($file_path);

请记住,要根据下载文档的实际类型设置正确的内容类型,请参阅主题HTTP“Content type”标头的所有可能值是什么?

可以使用PHP函数MIME\u content\u type()动态检测MIME类型

和PHP标题的参考。

 类似资料:
  • 问题内容: 我想创建一个允许强制下载JPG的下载脚本。这是我的PHP脚本: 这是我的js代码的代码段: 使用此代码示例,什么都不会发生。如果我将结果附加到HTML标记中,它将显示文件的内容。 有什么想法可以教浏览器下载此文件吗? 编辑:脚本更新 问题答案: 您无法使用Ajax下载文件。因此,如果您在ajax上发生了某些情况,则应返回url作为响应,并像开始下载过程一样应用它。 这里有一个音符。我记

  • 问题内容: 我希望在我的一个站点的每个视频下方添加“下载此文件”功能。我需要强迫用户下载文件,而不仅仅是链接到文件,因为有时这会开始在浏览器中播放文件。问题是,视频文件存储在单独的服务器上。 有什么办法可以强制用PHP下载吗? 问题答案: 您可以尝试这样的事情: 我刚刚测试了它,它对我有用。 请注意,为了能够读取远程URL,您需要启用它。

  • 问题内容: 我的服务器上有一个CSV文件。如果用户单击链接,则应下载该链接,但会在我的浏览器窗口中打开。 我的代码如下 这是我所有开发工作都在上面的普通Web服务器。 我尝试了类似的东西: 现在我文件的内容: 现在我的问题是正在下载,而不是我的CSV文件。它创建一个新文件。 问题答案: .htaccess解决方案 要强行下载服务器上的所有CSV文件,请添加.htaccess文件: PHP解决方案

  • 本文向大家介绍php强制下载文件函数,包括了php强制下载文件函数的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了php强制下载文件函数,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我有图像列表,我希望每个图像都有一个“下载”链接,以便用户可以下载图像。 所以有人可以指导我如何为php中的任何文件提供下载链接吗? 编辑 我希望在单击下载链接时显示一个下载面板,但我不想导航到要在浏览器中显示的图像 问题答案: 如果要强制下载,可以使用如下所示的内容: 如果仅使用常规链接链接到此脚本,则将下载文件。 顺便说一句,上面的代码段需要在页面的开头执行(在没有任何标题或HTM

  • 问题内容: 伙计们,我知道有很多关于强制弹出下载对话框的话题,但是还没有一个解决方案对我有用。 我的应用程序将邮件发送到用户的电子邮件帐户,通知他们“另一个用户向他们发送了一条消息”。这些消息可能具有指向Excel文件的链接。当用户单击其GMail / Yahoo Mail / Outlook中指向该Excel文件的链接时,我希望弹出“文件保存”对话框。 问题:右键单击并在IE上执行“另存为”时,