2011-06-30 22 views
2

私はここで、いくつかのメンバーが「plupload」で十分に親しみを持って助けてくれることを祈っています。 この小さなJqueryスクリプトは、私のファイルアップロードの問題を解消するための道ですので、どんな助けでも大歓迎です。ファイル名の問題が発生する

質問: 私はpluploadを使用して大きなファイルをアップロードするが、私の仮定は、それが書いていることである基本的なアップロードフォームと私の経験から

EG p163g1k1er15n310bi18bq1af61rc21.zip 

、名前はちんぷんかんぷんに変更されたサーバー上に表示されたときにすることができますチャンクされたセクションが一緒に戻されたときに元のファイル名に名前を変更する意図で一時ファイル名を出しますが、何らかの理由でこれをしていない可能性があります。

私はフォルダのアクセス権を777に変更しているので、これは問題ではないと私は合理的に確信しています。

使用されているランタイムはFlashです(チャンク機能が必要です)。バージョン1.4.3.2

いつものように、どんな助けも大歓迎です。

答えて

5

実際のファイル名ではなく、一意のファイル名を生成する構成オプションがあります。 docsから

unique_names アップロード時に一意のファイル名を生成します。これにより、ファイルのファイル名が であるため、 がサーバー上の既存のファイルである と衝突することはありません。

このオプションが設定で有効になっていないことを確認してください(既定ではありません)。 filename_2.jpgのように、そこ

// Clean the fileName for security reasons 
$fileName = preg_replace('/[^\w\._]+/', '', $fileName); 

は...デフォルトで実行するルーチンを清掃するいくつかのファイル名は、PHPのアップロードスクリプトが含まれて残っている...と、ファイルは(構成にかかわらず)が存在する場合は、アンダースコアは、常に番号が付加されますそれを除いて、あなたのファイル名を変更すべきではありません。

EDITは:そこに持っているように、私は解決策をforumsを探したが、短い来るてきた、アドバイスの私の最後のピースが、これは何とかFlashランタイムに関連しているかどうかを確認するために、HTML5のランタイムを試してみることです以前のバージョンのsome issuesでした。他のすべてが失敗した場合は、フォーラムに投稿してください。管理者は非常に反応があります。運が良ければ、見つけたらここに解決策を投稿してください。

+0

ありがとう、私はこれを探して、私はそれが動作するようになるかどうかを確認します。 – Andrew

+0

あなたが提案したように問題の行をコメントアウトしましたが、残念ながら私はまだサーバー上で同じ奇妙なファイル名を取得しています。 – Andrew

+0

編集内容がサーバー上にあることを確認しました。キャッシングの問題を避けるために別のブラウザを使用しました。バージョンとランタイムを確認する方法を教えてもらえますか? – Andrew

1

Ploploaderは "unique_names"という変数を使用します。私の場合はTRUEに設定されていますが、実際のファイル名を保持するにはfalseに設定する必要があります。ソリューションはPluploaderフォーラムから来ました。

0

元のファイル名を保持するには、pluploadによって提供されるupload.phpを使用する場合、アップロードを変更する必要がありました。

$fileName = isset($_FILES['file']["name"]) ? $_FILES['file']["name"] : ''; 
0

$fileName = isset($_REQUEST['name']) ? $_REQUEST['name'] : ''; 

からPHPのライン34は、私は同じ問題を抱えていました。別の解決策は、FormDataオブジェクトに新しい入力として実際のファイル名を挿入することです。アップロード (私はChromeとHTML5のランタイムを使用しています!) plupload.html5.jsファイル内のオブジェクトO = new FormData(); と の作成は、サーバー側で実際のファイル名を取得する追加し、この後

var oFileName = $("input[name='oFileName']").val(); 
O.append("oFileName", V.name); 

でいくつかの注射を追加見つけます( .php)

$oFileName = $_REQUEST["oFileName"]; 
関連する問題