我在自己的服务器上使用强制下载脚本。 - 单击链接,文件提示下载。工作完美,但即使文件不存在,也可以下载为空文件。因此,如果我使用/folder/filexyz.txt设置链接,则会提示下载,并将空的txt文件下载到硬盘。
我目前正在使用此脚本:
header("Cache-Control: no-cache");
header("Expires: -1");
header("Content-Type: application/octet-stream;");
header("Content-Disposition: attachment; filename=\"" . basename($file) . "\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($file));
echo readfile($file);
$ file是我文件的完整路径,如:http://www.mydomain.com/folder1/folder2/folder/filexyz.txt
如何检查文件是否存在。如果它不存在则下载不应该提示,否则当然是。
答案 0 :(得分:3)
您可以使用file_exists()来检查文件是否存在:)如果它没有发送404错误
header("HTTP/1.0 404 Not Found");
答案 1 :(得分:0)
您是否尝试过使用file_exists 1?
bool file_exists ( string $filename )
答案 2 :(得分:-1)
您需要将LOCAL路径存储到$path
中的文件而不是网址!
类似于Windows上的C:\path\to\somefile.txt
或Linux上的/path/to/somefile.txt
也不要使用file_exists()
而是使用is_file()
,因为如果给定路径是目录而不是文件,file_exists也会返回true。