0

好的,这是我的代码:

$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_* 控制函数,结果是一样的

4

2 回答 2

0

首先似乎没有理由缓冲您的标题,因此您可能会删除它们。

如果你不想,问题就来了。在冲洗之前清洁缓冲区。尝试删除ob_clean(). 此外,您可能必须使用ob_flush()而不是flush().

于 2012-05-02T11:41:59.940 回答
0

ob_clean 销毁输出缓冲区,清除您的标题。

你也不需要那个ob_*功能,你可以安全地删除它

于 2012-05-02T11:41:38.170 回答