我正在尝试使用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。
有什么想法吗?
答案 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!";
}