我创建了一个表单,当单击一个包含的按钮时,应该打开一个下载对话框来下载某个文件。该文件放在同一台服务器上。
我试过了:
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=" . $file . '"');
其中$ file是本地路径+文件名,例如c:\ mypath \ myfile.xls。但这不起作用。它提供了一个文件,但它不是一个有效的文件。我怎么能这样做?
注意:我写了c:\因为它仍然在我的本地机器上进行测试。
谢谢!
答案 0 :(得分: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
答案 1 :(得分:1)
试试这个:
$path = "http://www.example.com/files/"; $filename = "abc.gif"; header("Content-Type:image/gif"); header("Content-Disposition: attachment; filename=".$filename); header("Cache-control: private"); header('X-Sendfile: '.$path); readfile($path); exit;
答案 2 :(得分:0)
PHP在服务器端运行,你无法在客户端机器上下载文件。
将文件上传到服务器,然后提供该路径进行下载。
答案 3 :(得分:0)
必须从站点根目录引用路径...移动文件 例如: 脚本路径:C:/wamp/www/test.php 文件C:/script.js 然后:
if(file_exists('../../user.js'))
{
echo "OK";
}
还是个坏主意......