0
私は2サブドメインがあります。あるサブドメインから別のサブドメインにmove_uploaded_fileを移動する方法は?
- admin.example.com - 管理パネル
- static.example.com - アップロードされたファイル
どのように私は、ファイルをアップロードするためのmove_uploaded_file
を使用することができますが1番目のサブドメインのルートから2番目のサブドメインのルートに?
アップロード機能:
define('UPLOAD_DIR', '/home/.../static.example.com/htdocs/uploads/');
define('UPLOAD_ADDR', 'http://static.example.com/uploads/');
define('TEMP_DIR', '/home/.../admin.example.com/htdocs/temp/');
function upload_file($input, $upload_subdir) {
if (!file_exists($_FILES[$input]['tmp_name']))
return false;
$sha1file = sha1_file($_FILES[$input]['tmp_name']);
$tmp_name = TEMP_DIR . $sha1file;
$new_name = $upload_subdir . '/' . substr($sha1file, 0, 5) . '_' . $_FILES[$input]['name'];
move_uploaded_file($_FILES[$input]['tmp_name'], $tmp_name);
rename($tmp_name, UPLOAD_DIR . $new_name);
if (file_exists(UPLOAD_DIR . $new_name))
return $new_name;
else
return false;
}
試験:
upload_file('image' /* Input name */, 'images' /* subdir in UPLOAD_DIR (this is existing dir) */);
注
- サーバのOSがCentOSの
UPLOAD_DIR
とTEMP_DIR
が正しい絶対DIRです。また、私は相対的なdirが動作していないテストしました。- 私は実際には動作しない
move_uploaded_file
(のファイルを現在のサブドメインのファイルにコピーしないで)をテストしました。
'move_uploaded_file()'はホスト名/ドメインを気にしません。サーバー上でファイルを保存する場所を指定するだけです。スクリプトの相対URLを使用する場合は、 'upload_file(__ DIR__。 '/ image')'というスクリプトへの絶対パスを取得するために '__DIR__'を使うべきです。 –
問題がある場合、ほとんどの場合、ファイルへのアクセス権の1つです。サブドメインではそうではありません。 – JBH
Magnus Eriksson。 '__DIR __。 'image /''現在のサブドメインにファイルをアップロードする –