当前位置: 首页 > 面试题库 >

如何使用PHP单击文件名来下载文件?

阎承
2023-03-14
问题内容

我有一个信息列表,其中有一个文件名超链接的字段。我希望用户在单击该文件时下载该文件。

那么,如何使用PHP单击文件名来下载文件?

我使用了代码如下的ajax进行了尝试,但未下载任何文件。

download.php

$filename = $_GET['val'];
         // Fetch the file info.
 $filePath = $_SERVER['DOCUMENT_ROOT'] . "/dfms/images/docs/".$filename;

    if(file_exists($filePath)) {
        $fileName = basename($filePath);
        $fileSize = filesize($filePath);

        // Output headers.
        header("Cache-Control: private");
        header("Content-Type: application/stream");
        header("Content-Length: ".$fileSize);
        header("Content-Disposition: attachment; filename=".$fileName);

        // Output file.
        readfile ($filePath);                   
        exit();
    }
    else {
        die('The provided file path is not valid.');
    }

javascript功能

<script>
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript
alert("XMLHttpRequest not supported");
return null;
};
function download(path,val) {
var req = Inint_AJAX();
req.open("GET", path+"download.php?val="+val); //make connection
//req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
req.send(null); //send value
req.onreadystatechange = function () {
 if (req.readyState==4) {
      if (req.status==200) {

      }
 }
};

}
</script>

链接下载

<a href="javascript:download('http://localhost/project/images/','DMS.doc');">DMS.doc</a>

问题答案:

那么,如何使用PHP单击文件名来下载文件?

最简单的方法应该是链接到它。

<a href="download.php?......" target="_blank">DMS.doc</a>


 类似资料:
  • 我想用php从我的服务器下载文件。我搜索了谷歌,在这里找到了答案。这个答案表明我必须为此编写这些代码。 但我能做到这一点,只需这两行: 那么,我为什么还要像上面的代码那样多写几行呢?

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

  • 我有我的网站在和我想下载一些文件从另一个域但没有得到下载和显示302移动临时错误。我使用cURL代码。

  • 我有文本文件包含的CSV文件格式的样本,我希望我的用户可以下载一个链接点击该文件。 此文件驻留在此文件夹结构中: 资产- 这是我一直尝试的代码: 此代码在页面加载时下载文件,而不是单击链接。此外,它还下载页面的整个html结构,我只需要我在文本文件中编写的文本。 请问问题出在哪里?

  • 问题内容: 我对此并不陌生,我真的对如何下载已经成功上传到本地服务器上的文件一无所知。 我上传的脚本是- 问题答案: SomePage.php download.php

  • 问题内容: 我正在研究python和selenium。我想使用selenium从单击事件中下载文件。我写了下面的代码。 我想从给定的URL从名称为“导出数据”的链接下载两个文件。我如何实现它,因为它仅适用于click事件? 问题答案: 使用查找链接,然后调用方法。 添加了配置文件处理代码,以防止出现下载对话框。