0

この問題は Widen Fine-Uploader ( https://github.com/Widen/fine-uploader )に関連しています。

このマルチパート アップロード フォームを取得しました。自動アップロードなし。いくつかの画像をアップロードし、各画像に一意の名前を付けて保護したいと考えています。

例えば。4 つの画像を選択します。fine-upload 経由でアップロードします。すでにギャラリーIDを取得しています。すべての画像は、gallery-id と一意の昇順の番号を使用してファイル名で保存する必要があります。このような:

1234-1.jpg 1234-2.jpg 1234-3.jpg 1234-4.jpg

簡単に聞こえますが、2 つの問題があります。

  • image-id は、どれもスキップせずに昇順である必要があります。アップロード前にファイルをキャンセル (削除) すると、この問題が発生する可能性があります。そのため、すべてのファイルを選択した後にイメージ ID を設定するか、ファイルを削除するときに空の ID を埋める必要があります。

  • 画像の順序は、入力時にファイルを選択した順序に厳密に従う必要があります。選択した最初の画像は 1234-1.jpg になり、2 番目の画像は 1234-2.jpg になります。したがって、リロード後に imageHandler スクリプトで ID を設定できません。アップロード時に複数の同時接続を使用するため、最初の画像であってはならない最初の完全な画像を取得します。

私はそのようなことを試しました:

.on('submitted', function(event, id, name) {
    var picId = id+1;

    $(this).fineUploader('setParams', {
        'currentGid': 1234,
        'picId':picId
    });
})

また

params: {
        fileNum: function() {
        return $(this).attr('id');
        }
}

またはfileCount ++を使用していますが、必要なように何も機能しません..

4

1 に答える 1

2

あなたのアプリケーションは少しもろく聞こえますが、おそらくそれに対処することが最善の方法です。

Fine Uploader によって各ファイルに対して維持される ID とともに、一意の ID のマップを維持する必要があります。「送信済み」ハンドラーで、キーと値のペアをマップに追加します。「キャンセル」ハンドラで、マップ内のアイテムを適切に調整します。「アップロード」ハンドラで、「setParams」API メソッドを呼び出します。パラメーターは、その特定のファイルのマップで追跡している一意の ID であるギャラリー ID によって決まります。ファイルの ID を最後のパラメーターとして「setParams」呼び出しに渡すようにしてください。これにより、Fine Uploader は、このパラメータがその特定のファイル専用であることを認識できます。

詳細については、コールバックのドキュメントを参照してください。

コード例を次に示します。

var fileIds = [];

$('#myFineuploaderContainer').fineUploader({
   //set your options here
})
   .on('submitted', function(event, id, name) {
      fileIds.push(id);
   })
   .on('cancel', function(event, id, name) {
      var fileIdPosition = $.inArray(id, fileIds);      
      fileIds.splice(fileIdPosition, 1);
   })
   .on('upload', function(event, id, name) {
      var params = {
         currentGid: 1234,
         picId: $.inArray(id, fileIds)
      };

      $(this).fineUploader('setParams', params, id);
   });
于 2013-04-26T13:07:03.217 に答える