好的,这是我的代码:
$file='dir/xxx/'.$images[0].'.jpg';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'.jpg"');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
当我检查我的标题时,它们似乎是Content-Type:text/html
而不是我想要的类型。
它只是将图像原始数据输出到屏幕。
请帮忙!
稍后编辑: 我删除了每个ob_ *控制函数,结果相同。
答案 0 :(得分:0)
ob_clean销毁输出缓冲区,清除标题。
此外,您不需要ob_*
功能,您可以安全地删除
答案 1 :(得分:0)
似乎没有理由首先缓冲标题,因此您可以删除它们。
如果你不想,这就是问题所在。在清洗缓冲区之前清理缓冲区。尝试删除ob_clean()
。此外,您可能必须使用ob_flush()
而不是flush()
。