dtx9763 2014-12-26 09:11 采纳率: 100%
浏览 61
已采纳

使用PHP显示存储在服务器上的目录中的图像

I have an image stored in a directory on my server. Want to use PHP code to display it on the browser; something is wrong with my code. Please help.

<?php
$image = fopen('upload/foto4.JPG', 'r');
$Data = fread($image,filesize('$image'));
fclose($image);
echo"<div style='width:15%;height:10%;position:relative;top:22%;left:20%'/>".$Data."</div>";
?>
  • 写回答

3条回答 默认 最新

  • duanpiangeng8958 2014-12-26 09:19
    关注

    fread will not add the code to display the picture, it only shows the data that is in the file... What you want to do is display a page with an img tag, and its source pointing to your image file, or serve it using php:

    echo"<div style='width: 15%; height:10%; position:relative; top:22%; left:20%'/><img src='uploads/foto4.JPG'/></div>";
    // Or
    echo"<div style='width: 15%; height:10%; position:relative; top:22%; left:20%'/><img src='uploads.php?f=foto4.JPG'/></div>";
    

    If you use the second solution, see it points to a php file... All your uploads would be handled by your PHP that way if you want to control access or other stuff...

    //uploads.php
    header('Content-Type: image/jpeg'); // We are serving a jpeg. 
    readfile('uploads/'.$_GET['f']);
    

    EDIT: Finally, one could use the data URI scheme to show the picture inline, this method would fit perfectly for your code snippet but might not be required as not all browsers support it (but all majors do). Read more at http://www.websiteoptimization.com/speed/tweak/inline-images/

    <?php
    $image = fopen('upload/foto4.JPG', 'rb');
    $Data = fread($image,filesize('$image'));
    fclose($image);
    echo'<div style="width:15%;height:10%;position:relative;top:22%;left:20%"/><img src="data:image/jpeg;base64,'.base64_encode($Data).'"/></div>';
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?