如何在上传完成后才能在PHP中显示图片?

时间:2014-04-10 08:12:28

标签: php

我正在使用WinSCP上传图像,使用PHP将其发送到Web服务器。 然后,站点每X秒自动刷新一次,并注意到存在新的图像文件,并将其显示给用户。 但是,在加载时,它会显示以下图像,看起来不太好:

http://s10.postimg.org/fwz0ok16h/imageupload.png

如何确保图像在完全上传并准备好后才显示? 可能有某种“预加载器”或淡入淡出效果,你可以在PHP中使用它真的只显示图片一旦完成?它需要是PHP,因为Javascript无法找到确切的图像名称。这是我当前显示图像的方式:

foreach($files as $key => $value)
    {
        if($count >= 1)
            break;

        echo '<th><img id="image" height="250px" width="250px" src="files/'."$key".'"><br />'."$value".'</img></th>';

        $count++;
    }

2 个答案:

答案 0 :(得分:1)

使用

打开图像
$png = @imagecreatefrompng('stamp.png');

// Or:
$jpg = @imagecreatefromjpeg('photo.jpeg');

如果它没有失败,则图像完成。如果失败,您要么没有安装和启用GD lib,要么图像损坏/不完整。

但这是使用Javascript事件处理程序(例如附加到上传的onreadystate)检查图像上传是否完整的最佳方法,并且仅在触发该事件时刷新页面。

更多链接:

jQuery: Check if image exists

Taking control of image loading

可能是最好的一个:Is there any way to have PHP detect a corrupted image?

答案 1 :(得分:0)

在输出文件之前,请检查其filemtime。如果修改时间少于几秒钟,您可以认为它仍在上传并跳过它。