2017-08-12 29 views
0

私は2サブドメインがあります。あるサブドメインから別のサブドメインにmove_uploaded_fileを移動する方法は?

  1. admin.example.com - 管理パネル
  2. 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) */); 

  1. サーバのOSがCentOSの
  2. UPLOAD_DIRTEMP_DIRが正しい絶対DIRです。また、私は相対的なdirが動作していないテストしました。
  3. 私は実際には動作しないmove_uploaded_fileのファイルを現在のサブドメインのファイルにコピーしないで)をテストしました。
+1

'move_uploaded_file()'はホスト名/ドメインを気にしません。サーバー上でファイルを保存する場所を指定するだけです。スクリプトの相対URLを使用する場合は、 'upload_file(__ DIR__。 '/ image')'というスクリプトへの絶対パスを取得するために '__DIR__'を使うべきです。 –

+1

問題がある場合、ほとんどの場合、ファイルへのアクセス権の1つです。サブドメインではそうではありません。 – JBH

+0

Magnus Eriksson。 '__DIR __。 'image /''現在のサブドメインにファイルをアップロードする –

答えて

0

問題が解決しない表示する警告。
これは、PHPがDOCUMENT_ROOT以外のフォルダにアクセスできないため動作しません。

関連する問題