2011-11-30 10 views
5

PHPのmove_uploaded_file関数の行き先パスに何を使用するのかを知る必要があります。 (http://php.net/manual/en/function.move-uploaded-file.phpを参照してください)PHPのmove_uploaded_fileの行き先のパス

今、私はうまく動作するコードを持っています。マイドメインのルートディレクトリは、(とりわけ)以下の項目が含まれます。
アップロード          < - このをフォルダ
追加-フォトsubmit.phpを      < - これは、move_uploaded_file
を使用するPHPファイルです

アドオンフォトsubmit.phpで

、私は次のコード行があります

$target_path = "uploads/" . basename($_FILES['uploadedFile']['name']); 

$のTARGET_PATHをI関数の宛先パラメーターとして使用されます。 www.mydomain.com/add-photo-submit.phpでファイルにアクセスするとうまくいきます

しかし、私は最近.htaccessファイルを変更して.phpを削除し、末尾にスラッシュを追加しました。 PHPファイルは、www.mydomain.com/add-photo-submit/でアクセスします。 PHPファイルがターゲットパスを "www.mydomain.com/add-photo-submit/uploads/filename.jpg"として解釈していると思います「私は私のルートディレクトリには、このような設定になりたい将来的には...

は、私は絶対パスを使用してみましたが、それは私が権限を持っていないと述べた。
ルート
  - 管理者(フォルダ)
        -add-photo-submit.php
  -uploads

move_uploaded_fileにはどのフレームがありますか?

答えて

23

次のような絶対パスを取得するためにDOCUMENT_ROOTを使用する必要があります(index.php)

$_SESSION["uploads_base_url"]=dirname(__FILE__); 

であり、アップロードが必要なファイルでこれを使用できるようになりました。

echo $uploads_base_url=$_SESSION["uploads_base_url"]; 
+1

か、PHP定数を使用することができ、 '$ _SERVERの代替として' __DIR__' [ 'DOCUMENT_ROOT']は '... 5年後 – AnchovyLegend

+0

は、まだ役立ちます。ありがとう – raqulka

1

PHPのローカルファイル名操作では、mod_rewriteがあなたのURLに対して何をしているのか分からず、実際の生ファイルシステムのパスだけを扱います。あなたはmod_rewriteを使って素敵なシンプルなexample.com/index.phpを恐ろしいexample.com/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/yzにすることができ、PHPはサーバ上の同じ物理ディレクトリで実行されます。

PHPスクリプトが/home/sites/example.com/html/index.phpにあり、移動経路にuploads/example.jpgを使用すると、要求されたURLが何であっても、PHPはその画像を/home/sites/example.com/html/uploads/example.jpgに配置しようとします。

$target_path = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . basename($_FILES['uploadedFile']['name']); 
0

か、我々はルートファイルのいずれかに 宣言線の下にはなく、サーバーのルートのdirname(__FILE__)を使用することができます

$target_path = "../uploads/" . basename($fileUpload['name']); 
0

を使用します。

関連する問題