web-dev-qa-db-ja.com

jquery-file-uploadプラグイン:アップロードパスを変更するにはどうすればよいですか?

Blueimpjquery-file-uploadプラグインを使用しようとしています。良いアップローダーのようですが、ドキュメントは役に立ちません。

ダウンロード可能なデモスクリプトを使用する場合は、すべて問題ありません。しかし、アップロードパスを変更したい場合、それは機能しません。

Index.phpで、次のようにアクションパスを変更しようとしました:

form id="fileupload" action="../uploads/" method="POST" enctype="multipart/form-data"

「uploads」フォルダに「files」と「thumbnails」というフォルダを追加しました。

Firebugでわかるように、GET呼び出しは問題ありません。

GET http://localhost/alliance_pretests/uploads/ 200 OK -8ms

しかし、アップロードアクションを起動すると、POSTが応答します(まだFirebugにあります):

POST http://localhost/alliance_pretests/uploads/ 404 Not Found 44ms

私は他に何も変更しませんでした。何を忘れましたか?

GET呼び出しでフォルダーが表示されるのに、POST呼び出しではないのはなぜですか?

前もって感謝します。宜しくお願いします。

14
mlh

フォームアクションは、アップロードフォルダがあるべきフォルダではありません。フォームアクションは、送信後にデータが送信されるスクリプトです。 (フォームアクションについてはこちらをご覧ください http://www.w3schools.com/tags/att_form_action.asp

アップロード先のフォルダーを見つけるか、スクリプト内を調べてみてください。

更新:ライブラリをダウンロードした後

Server/php/upload.class.phpを確認すると、アップロードフォルダの場所を示す変数がいくつかあります。

'script_url' => $this->getFullUrl().'/',
'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/',
'upload_url' => $this->getFullUrl().'/files/',

Touは、/files/を独自のアップロードフォルダに置き換える必要があります。

18
Mike

提供されている回答@mugurは正しいですが、ライブラリで提供されるphpクラスを見ると、構成メソッドの最初のパラメーターは「オプション」であり、連想配列を次のように宣言しています。

$options = array('upload_dir'=>'upload/directory/of/your/choice', 'upload_url'=>'upload/directory/of/your/choice');

クラスをインスタンス化するときに最初のパラメーターとして渡します。

$upload_handler = new UploadHandler($options);

ソースコードを変更するのではなく、クラスを使用するたびにアップロードディレクトリを変更できます。

21
Roark