我正试图强制下载。这是我的代码:
<?PHP
// Define the path to file
$file = 'http://myimage.com/users/test/uploads/1234.png';
if(!file)
{
// File doesn't exist, output error
die('file not found');
}
else
{
header('Content-disposition: attachment; filename='.$file);
header('Content-type: application/octet-stream');
readfile($file);
}
?>
这是我在firefox中遇到的错误:“图像”文件:/// C:/ Users / Username / Downloads / 1234%20(4).png“因为包含错误而无法显示。” %20(4)是一个空格,可能是我尝试下载的第四个副本。
答案 0 :(得分:1)
您的Content-Type
错了。迫使下载所需的只是Content-Disposition: attachment
;将其更改为image/png
而不是application/octet-stream
。
此外,您在打开<?php
标记之前有一个空格。你需要把它拿出来。
此外,您的“文件存在”检查不会按照您的想法执行。使用file_exists
检查文件是否存在,并记住$
符号。
答案 1 :(得分:0)
确保<?php
?>
标记之外没有任何空行。