2016-11-18 3 views
2

Я пытаюсь скопировать удаленный файл в локальный путь, используя функцию PHP copy().PHP не удается скопировать удаленный файл

// 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([email protected]($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 copy(/baker-and-co/img/tmp/5804a6a8-9c78-49f2-88cc-49f5c0a83865-1.jpg): failed to open stream: No such file or directory

Каталог tmp существует уже на моем местном, так что я не вижу, что вопрос здесь. У меня также есть allow_url_fopen.

Любые идеи?

+0

какая у вас нынешняя папка? –

+0

Я использую структуру CakePHP MVC, поэтому я нахожусь в '/ View/Reports/admin_view.ctp', и папка находится в'/webroot/img/tmp' – user3574492

ответ

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!"; 
} 
+0

. Вы, безусловно, можете копировать удаленные файлы, см. [Docs] (http://php.net/manual/en/function.copy.php), этот код дает ту же ошибку – user3574492

+0

http://stackoverflow.com/questions/9843933/copy-file-from-remote-server-or -url –

+0

Эта ссылка именно то, что я пробовал, copy() может использовать URL-адрес для исходного файла, но не для адресата. Поэтому снова это не помогает, поскольку я копирую FROM URL и в мой локальный путь к файлу – user3574492

Смежные вопросы