php读取动态图像文件失败,需要创意

时间:2014-11-22 16:18:22

标签: php image image-processing readfile

我正在使用下一个脚本从服务器读取图像文件并将其返回给用户。 没有任何理由浏览器(chrome和FF)都停止显示图像,即使网络管理器中的一切看起来都很好,标题和文件大小都是正确的,文件本身也是在服务器上创建的。

    if (!file_exists($previewFileName)) {
        //... here comes creating the image code, I had tested it and the image is there!!!
    }
    //http://stackoverflow.com/a/15271869/2992810
    session_write_close();

    header("Content-Type: image/$ext");
    //set cache header
    $seconds_to_cache = -1; //three month
    $ts = gmdate("D, d M Y H:i:s", time() + $seconds_to_cache) . " GMT";
    header("Expires: $ts");
    header("Pragma: nocache");
    header("Cache-Control: max-age=$seconds_to_cache");
    //return the file
    echo file_get_contents($previewFileName);
    die();

以下是响应者:

HTTP/1.1 200 OK
Date: Sat, 22 Nov 2014 16:02:42 GMT
Server: Apache/2.4.9 (Win64) OpenSSL/1.0.1g PHP/5.5.12
X-Powered-By: PHP/5.5.12
P3P: CP="CAO PSA OUR"
Expires: Sat, 22 Nov 2014 16:02:41 GMT
Cache-Control: max-age=-1
Pragma: nocache
Set-Cookie: kdm_csrf_cookie=d1bd278e07c72a69659d3c97471001b5; expires=Sat, 22-Nov-2014 18:02:42 GMT; Max-Age=7200; path=/
X-Frame-Options: SAMEORIGIN
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: image/jpg

Chrome网络管理器输出523KB作为文件大小。 但是,Chrome和FireFox都没有显示图像本身。

我想也许图像本身坏了,但是我已经从我的HD中直接打开它并且效果很好所以我不知道是什么导致浏览器不能渲染图像。

如何进一步调试它的任何线索或想法将不胜感激....

1 个答案:

答案 0 :(得分:0)

对于将来遇到图像相关错误的任何人 请在阅读图像文件之前确认您没有在屏幕上打印任何内容 我偶然打印了2个白色空格,导致图像读取失败!

该死!