我正在使用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++;
}
答案 0 :(得分:1)
使用
打开图像$png = @imagecreatefrompng('stamp.png');
// Or:
$jpg = @imagecreatefromjpeg('photo.jpeg');
如果它没有失败,则图像完成。如果失败,您要么没有安装和启用GD lib,要么图像损坏/不完整。
但这是使用Javascript事件处理程序(例如附加到上传的onreadystate
)检查图像上传是否完整的最佳方法,并且仅在触发该事件时刷新页面。
更多链接:
Taking control of image loading
可能是最好的一个:Is there any way to have PHP detect a corrupted image?
答案 1 :(得分:0)
在输出文件之前,请检查其filemtime
。如果修改时间少于几秒钟,您可以认为它仍在上传并跳过它。