我正在尝试使用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']);
}
但它也不能正常工作,它没有给出任何错误信息。
答案 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);
我在当地试过,它运作得很好。