【问题标题】:How do I only show pictures in PHP once they're done uploading?上传完成后,如何仅在 PHP 中显示图片?
【发布时间】:2014-05-23 19:45:42
【问题描述】:

我正在使用 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++;
    }

【问题讨论】:

    标签: php


    【解决方案1】:

    在输出文件之前,检查它的filemtime。如果该修改时间不到几秒钟前,您可以假设它仍在上传并跳过它。

    【讨论】:

      【解决方案2】:

      使用

      打开图片
      $png = @imagecreatefrompng('stamp.png');
      
      // Or:
      $jpg = @imagecreatefromjpeg('photo.jpeg');
      

      如果没有失败,则图像是完整的。如果失败,您要么没有安装和启用 GD 库,要么映像已损坏/不完整。

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

      更多链接:

      jQuery: Check if image exists

      Taking control of image loading

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-12-07
        • 1970-01-01
        • 2011-10-17
        • 1970-01-01
        • 2017-03-18
        • 1970-01-01
        • 2014-06-25
        相关资源
        最近更新 更多