PHP无法复制远程文件

时间:2016-11-18 10:45:07

标签: php file copy

我正在尝试使用PHP copy()函数将远程文件复制到本地路径。

 // https://d47lev3ki2x1o.cloudfront.net/5804aaa8-e5a8-484a-9c3b-4a72c0a83865-1.jpg
 $imageURL = Configure::read('cloudfront') . $photo['image_location'];
 $localURL =  $this->webroot . 'img/tmp/' . $photo['image_location'];


 if(!@copy($imageURL, $localURL)) {
     $errors= error_get_last();
     echo "COPY ERROR: ".$errors['type'];
     echo "<br />\n".$errors['message'];
 } else {
     echo "File copied from remote!";
 }

它一直给我错误:

  

COPY ERROR:2   副本(/baker-and-co/img/tmp/5804a6a8-9c78-49f2-88cc-49f5c0a83865-1.jpg):   无法打开流:没有这样的文件或目录

tmp目录已存在于我的本地,所以我不知道这里有什么问题。我也将allow_url_fopen设置为true。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试创建一个新文件,因为您无法使用远程文件。

 $imageURL = Configure::read('cloudfront') . $photo['image_location'];
 $localURL =  $this->webroot . 'img/tmp/' . $photo['image_location'];
if(!file_put_contents($localURL, file_get_contents($imageURL));) {
 $errors= error_get_last();
 echo "COPY ERROR: ".$errors['type'];
 echo "<br />\n".$errors['message'];
} else {
 echo "File copied from remote!";
}