使用php在本地服务器上保存远程图像文件但不是完全成功

时间:2010-07-06 11:18:55

标签: php

我知道有些人已经问过了,但我的问题是下载远程图像文件(每个文件大小小于200KB)。但有些文件不会完全保存。并且有些文件无法保存,或者某些文件被保存但不是100%,我会在图像上看到一些灰色阴影。最糟糕的是每次都是不同的错误输出。(这是互联网问题?)

我尝试以下方法来保存文件。

  1. file_get_contents
  2. 卷曲/ GD
  3. 复制
  4. 一切都可以工作,但我找不到保存整个文件的完美方法。

    以下是错误信息。

    1. 无法打开流:HTTP请求 失败! HTTP / 1.0 408请求 在“复制”行中超时
    2. 最大     执行时间为60秒     超过(我增加时间)
    3. 我的php程序。

      set_time_limit(60);
      
      $imageArray=array(image array............);
      
      for ($k=0;$k<count($imageArray);$k++){
      
      echo '<img src="'.$imageArray[$k].'"><br/>';
      
      $isok=copy($imageArray[$k] , dirname(__FILE__).'/photo/item_'.($k+1).'.jpg');
      
      if(isok==true){
         echo' success!';  
      }else{
        echo ' Fail';  
      }
      

2 个答案:

答案 0 :(得分:1)

最有可能是互联网问题。你尝试在浏览器中加载它们吗?如果他们这样做,您可以尝试在您的计算机上运行代码,看看这是否有帮助。

但最可能的原因是您尝试从中下载的远程站点 - 它可以限制每个时间间隔的连接。尝试在图像之间休眠 - 例如5-6秒,看看这是否有帮助。

还尝试下载较小批量的图像 - 一次1到2张,看它是否有效。

答案 1 :(得分:0)

我在你的副本中注意到你用.jpg硬编码到目的地输出。您是否总是上传.jpg,就像上传.png或.gif并将其强制为.jpg一样,可能会导致问题。只是一个诚实的想法。