2

我创建了一个表单,当单击包含的按钮时,应该打开一个下载对话框来下载某个文件。该文件放置在同一台服务器上。

我试过:

header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=" . $file . '"'); 

其中 $file 是本地路径 + 文件名,例如 c:\mypath\myfile.xls。但这不起作用。它为我提供了一个文件,但它不是一个有效的文件。我还能怎么做?

注意:我写了 c:\ 因为它仍然在我的本地机器上进行测试。

谢谢!

4

4 回答 4

3

试试这个

header("Pragma: public", true);
header("Expires: 0"); // set expiration time
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".basename($file));
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
die(file_get_contents($file));

我认为 file_get_contents() 函数不再适用于 PHP 5.0.3

于 2013-03-01T11:36:28.830 回答
1

试试这个 :

$path = "http://www.example.com/files/";
$filename = "abc.gif";

header("内容类型:图像/gif");
header("内容配置:附件;文件名=".$filename);
header("缓存控制:私有");
header('X-Sendfile: '.$path);
读取文件($路径);
出口;
于 2013-03-01T11:37:12.147 回答
0

PHP 在服务器端运行,您无法下载客户端机器中的文件。

将文件上传到服务器,然后提供下载路径。

于 2013-03-01T11:34:04.203 回答
0

必须从站点根目录引用路径...移动文件 ex:脚本路径:C:/wamp/www/test.php 文件 C:/script.js 然后:

if(file_exists('../../user.js'))
{
    echo "OK";
}

还是个坏主意。。

于 2013-03-01T11:34:07.353 回答