2012-02-02 12 views
3

Pluploadの使用を開始したばかりですが、これはすばらしい、本当に便利ですが、私のニーズに合わせてカスタマイズするために少し落ちています私の深さ。Plupload:PHP処理スクリプトからファイル名を取得する方法

私は基本的に1つのファイルをアップロードするために使用しているので、私のコードはPluploadフォーラムで提供されている2つの基本チュートリアルの2番目に基づいています。私はサンプルPHPスクリプトupload.phpを使って処理しています。

これはすべて正常に動作します - 私は元のファイル名を取得していることを除いて、upload.phpは衛生的です。たとえば、ファイル名に空白があると、代わりに元の名前のファイルを探しているので、フォーム提出スクリプトが機能しません。

正規表現を削除または変更することで、明らかにこれを動作させることができますが、私は本当にしたくありません。私はむしろupload.phpから消されたファイル名を取り戻すことになるでしょうが、これをどうやって行うのか分かりません。

Pluploadとの関連でこの件を検索しましたが、回答が見つからないため、私が適用できるSmaeの原則をさらに一般的に検索することはできません。私が探しているもの。誰かがこれについていくつかの光を当てることができますか?

答えて

7

名とパスIC完全のsanitazation upload.phpの53行で:あなたはPHPで名前を使用したい場合は、ライン130について(それが成功ステータスを返す直前に関数を呼び出す

$filePath = $targetDir . DIRECTORY_SEPARATOR . $fileName; 

);

あなたは

die('{"jsonrpc" : "2.0", "result" : null, "id" : "id", "cleanFileName" : "'.$fileName.'"}'); 

にライン130でJSON応答を変えるので、ファイル名が含まれている、JavaScriptでファイル名を使用したい場合。 JavaScriptでは、あなたは、コールバックを追加:

uploader.bind('FileUploaded', function(up, file, info) { 
    console.log(info.response); 
}); 

info.responseをJSON文字列が返され、サーバー上で名前を変更した後、ファイル名が含まれますです。

+1

ありがとう、私は今それを持っていると思います。私はこのコードを使用していますが、これを行う良い方法かどうか教えていただけないでしょうか?それはうまくいくかどうかわからないので、JSONを使用したことはありません。 'uploader.bind( 'FileUploaded'、関数(アップ、ファイル、情報){ \tにconsole.log(info.response); \t VAR OBJ = JSON.parse(info.response); \tのdocument.getElementById(」 innerHTML + = ''; \t}); ' – rickibarnes

+0

これは、新しい行なしに配置されたちょっとしたものですが、うまくいけばそれでも意味があります:P – rickibarnes

+0

IE7をサポートしたい場合は、JSONオブジェクトをネイティブに使用できないので、必ずJSON2をpolyfillとして使用してください。 –

関連する問題