URL からサーバー上の相対パスに画像をランダムなファイル名でコピーし、最終的な URL をエコー バックするコードを作成しようとしています。私には2つの問題があります:
- 相対パスでは機能しません。パスを宣言しない場合、関数は機能しますが、画像は PHP ファイルの同じフォルダーに保存されます。フォルダーを指定してもエラーは返されませんが、サーバーに画像が表示されません。
- echo 関数は常に空の文字列を返します。
私はクライアント側のプログラマーなので、PHP は私のものではありません...助けていただければ幸いです。
コードは次のとおりです。
<?php
$url = $_POST['url'];
$dir = 'facebook/';
$newUrl;
copy($url, $dir . get_file_name($url));
echo $dir . $newUrl;
function get_file_name($copyurl) {
$ext = pathinfo($copyurl, PATHINFO_EXTENSION);
$newName = substr(md5(rand()), 0, 10) . '.' . $ext;
$newUrl = $newName;
return $newName;
}
編集:
誰かが興味を持っている場合の修正コードは次のとおりです。
<?php
$url = $_POST['url'];
$dir = 'facebook/';
$newUrl = "";
$newUrl = $dir . generate_file_name($url);
$content = file_get_contents($url);
$fp = fopen($newUrl, "w");
fwrite($fp, $content);
fclose($fp);
echo $newUrl;
function generate_file_name($copyurl) {
$ext = pathinfo($copyurl, PATHINFO_EXTENSION);
$newName = substr(md5(rand()), 0, 10) . '.' . $ext;
return $newName;
}