将远程映像保存到本地服务器Codeigniter

时间:2014-07-15 19:43:54

标签: php codeigniter

我正在尝试使用Codeigniter中的Phils Curl srcipt将远程映像保存到本地服务器。

为了确保目录具有适当的权限,我有:

if (!is_dir('images')){
  mkdir('./images', 0777, true);
}

这是我试过的......(Source

 $this->load->library('curl');
 $this->load->helper('file');

 $remoteURL = 'http://fermeteogranada.com/camara.jpg';
 $img = $this->curl->simple_get($remoteURL);
 $localURL = './images/main.jpg';

 if ( ! write_file($localURL, $img)){
     $this->session->set_flashdata('err_message', 'Unable to write the file');
  }

它正在创建一个名为main.jpg的文件,但是有0个字节。

我还尝试使用copy和file_get_content

if ( ! copy($localURL, $img)){
  $error = get_last_error();   
  $this->session->set_flashdata('err_message', $error['message']);
}


if ( ! file_put_content($localURL, file_get_content($img) )){
  $error = get_last_error();   
  $this->session->set_flashdata('err_message', $error['message']);
}

但它也不能正常工作,它没有给出任何错误信息。

2 个答案:

答案 0 :(得分:0)

我首先调试$ img数据验证它中有一堆二进制垃圾。您可能还想检查http状态。也许该网站拒绝用户代理进行远程卷发。

答案 1 :(得分:0)

这样做怎么办?

  $remoteFile = 'http://fermeteogranada.com/camara.jpg';
  $remoteResource = file_get_contents($remoteFile);

  $saveTo = './images/main.jpg';
  file_put_contents($saveTo, $remoteResource);

我在当地试过,它运作得很好。