2016-11-18 18 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をtrueに設定しました。

アイデア?

+0

現在のフォルダは何ですか? –

+0

私は '/ View/Reports/admin_view.ctp'にあり、フォルダーは'/webroot/img/tmp'にありますので、CakePHP MVC構造体を使用しています – 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

そのリンクは私が試したもので、コピー()はソースファイルにURLを使用できますが、コピー先には使用できません。だから私はURLから私のローカルファイルパスにコピーしているので、これはもう役に立ちません – user3574492