强制下载时的黑色图像

时间:2009-12-30 14:31:37

标签: php html

当我单击按钮时,浏览器会强制下载图像 代码工作它下载图像与正确的大小,但它都是黑色的 即时通讯使用此代码:

    // get attachment location
    $attachment_location = "files/image.jpg";

    if (file_exists($attachment_location)) {
        // attachment exists
        // send open/save jpg dialog to user
        header('Cache-Control: public'); // needed for i.e.
        header('Content-Type: application/jpg');
        header('Content-Disposition: attachment; filename="image.jpg"');
        readfile($attachment_location);
        die(); // stop execution of further script because we are only outputting the jpg
        }
    else {
        die('Error: File not found.');
    }

2 个答案:

答案 0 :(得分:0)

我在测试服务器上尝试了你的代码。 (PHP5.3,Apache2.2,Win7)
适用于Firefox和IE8。

您确定问题与您的图片有关,还是与您自己的浏览器无关? 您使用的是哪个版本的PHP?什么HTTP服务器?哪个操作系统?
你在哪个浏览器上测试过它?

答案 1 :(得分:0)

是否有可能还有其他数据仍在缓冲区中?如果您使用echo file_get_contents()代替readfile会发生什么?如果您在致电ob_clean(); flush();之前致电readfile会怎样?

你还有error_reporting啰嗦吗?在调用readfile或使用上面提到的任何缓冲操作之前,请尝试将其关闭。