Broken image with readfile and file_get_contents

ε祈祈猫儿з 提交于 2019-12-29 07:47:13

问题


I'm trying to use a function in order to get this working:

<img src='login.php?image=ind_legend.jpg'>

But I can't pass through the function to place the image. I went back a couple of steps and tried only this part of the code:

<?php
$file = "http://localhost/sales/test.jpg";
header('Content-type: image/jpeg');
readfile($file);
?>

or using this function:

echo file_get_contents($source);

but the fact is that the only thing I get is a broken image cross (IE) or nothing in Firefox.

I would appreciate any suggestions

Thanks in advance


回答1:


You certainly have some whitespace in your PHP script, or a UTF-8 BOM invisibly before your <?php opening marker. Use a hexeditor to find out.

To debug it further, open the image URL http://localhost/login.php?image=ind_legend.jpg directly in your browser, save the file. And then compare it to the original JPEG.




回答2:


use the ob_clean() function of php before the readfile()




回答3:


As previously mentioned, you probably have some whitespace. I'd try replacing the entire file with the code below. Removing the closing php statement eliminates any chance that there is extra whitespace:

<?php
$file = "http://localhost/sales/test.jpg";
header('Content-type: image/jpeg');
readfile($file);



回答4:


first of all point your browser to http://youraddress/login.php?image=ind_legend.jpg and check the result.

Maybe the file /sales/test.jpg is corrupted or you don't have enabled the http:// wrapper for readline

At last save the corrupted image via the save image as... context menu option of your browser of choice and try to open it with a text editor. I will not surprised if you will find an error message (if you have them enabled).



来源:https://stackoverflow.com/questions/5877138/broken-image-with-readfile-and-file-get-contents

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!