2

一部のメンバーが「plupload」に精通していることを願って、ここでお願いします。この小さなJqueryスクリプトは、ファイルのアップロードの問題を解決するための準備を進めているので、助けていただければ幸いです。

質問:pluploadを使用して大きなファイルをアップロードできますが、サーバーに表示されると、名前がジブリッシュに変更されます。

EG p163g1k1er15n310bi18bq1af61rc21.zip

基本的なアップロードフォームの経験から、チャンクされたセクションが元に戻されたときに元のファイル名に名前を変更することを意図して一時ファイル名を書き出すと想定していますが、何らかの理由でこれを行っていない可能性があります。

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

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

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

4

4 に答える 4

5

実際のファイル名を使用する代わりに、一意のファイル名を生成する構成オプションがあります。

ドキュメントから:

unique_names アップロード時に一意のファイル名を生成します。これにより、ファイルのunqiueファイル名が生成され、たとえばサーバー上の既存のファイルと衝突しないようになります。

このオプションが構成で有効になっていないことを確認してください(デフォルトでは有効になっていません)。デフォルトで含まれているphpアップロードスクリプトによって実行されるファイル名クリーニングルーチンがまだいくつかあります...

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

...そして、ファイルが存在する場合(構成に関係なく)、アンダースコアには常に数字が追加されますがfilename_2.jpg、それ以外はファイル名を変更しないでください。

編集:私は解決策をフォーラムで探していましたが、短い間、私の最後のアドバイスは、HTML5ランタイムを試して、これが何らかの形でFlashランタイムに関連しているかどうかを確認することです。以前のバージョンにはいくつかの問題がありました。 。他のすべてが失敗した場合は、フォーラムに投稿してください-そこにいる管理者は非常に敏感です。幸運を祈ります。解決策を見つけたら、ここに投稿してください。

于 2011-06-30T12:37:46.333 に答える
1

Ploploaderは「unique_names」と呼ばれる変数を使用します。私の場合、これはTRUEに設定されていましたが、実際のファイル名を保持するには、falseに設定する必要があります。解決策はPluploaderフォーラムから来ました。

于 2011-07-01T08:48:44.420 に答える
0

元のファイル名を保持するには、pluploadによって提供されるupload.phpを使用する場合、upload.phpの34行目を次のように変更する必要がありました。

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

$fileName = isset($_FILES['file']["name"]) ? $_FILES['file']["name"] : '';
于 2013-02-27T14:35:05.920 に答える
0

私も同じ問題を抱えていました。別の解決策は、FormDataオブジェクトへの新しい入力として実際のファイル名を挿入することです。(私はchromeとHTML5ランタイムを使用しています!)plupload.html5.jsファイル内でオブジェクトの作成を見つけ、O = new FormData(); いくつかのインジェクションを追加します

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

この追加後、サーバー側で実際のファイル名を取得します(upload.php用)

$oFileName = $_REQUEST["oFileName"];
于 2016-02-18T09:27:54.927 に答える