2

BlueImpプラグインを使用してファイルをアップロードします。ユーザーが[ファイルの追加]をクリックすると、新しいファイル入力が動的に追加されます。
次に、ユーザーがファイルをアップロードすると、AJAXを介して私のWebフォルダーに保存されます。

私の最初のアイデアは、生成されたIDでfileuploadメソッドを呼び出すことでした(例:$('#files_0').fileupload( { //ajax processing } );
ページが読み込まれるときに入力が存在しないため、このソリューションは機能しません。 したがって、次の

ようなものが必要です$('#files_0').live('click, function ({ fileupload( { //ajax processing } ) )};が、それも機能しません。

ドキュメントとフォーラムで、fileInputオプションを使用した解決策であることがわかりました。ここで私が行ったことは機能していません。

$('#myDiv').
    fileupload(
    {
        fileInput : $('#files_0),
        dataType: 'json',
        url:'{{ path('MyBundle_ajax_upload_picture') }}',
         progressall: function (e, data) 
         {
            var progress = parseInt(data.loaded / data.total * 100, 10);
            $('#progress .bar').css(
                'width',
                progress + '%'
            );
          },
         add: function (e, data) 
         {
            $(this).fileupload('process', data).done(function () {
            data.submit();
            });
          },
         done: function (e, data) 
         {
            $.each(data.result.files, function (index, file) {
            $('<p/>').text(file.name).appendTo(document.body);
            });
         },
        always: function (e, data) 
        {
           console.log(data);
        }
    });
4

1 に答える 1

3

これを試して:

$('#myDiv').on('change', '#files_0', function (e) {
    var $fileupload = $(this);
    $fileupload.fileupload({
        url: {{ path('MyBundle_ajax_upload_picture') }},
        dataType: 'json'
    });

    $fileupload.fileupload('add', {
        fileInput: $(this)
    });
});
于 2013-02-22T13:08:09.597 に答える