web-dev-qa-db-ja.com

jQueryファイルアップロードプラグインが機能しない

私は自分のサイトでjQueryFile Uploadプラグインを使用しようとしていますが、現時点では不可能であり、ドキュメントはこれまでに見た中で最悪です。私が見ることができるのは、何の説明もない、たくさんのコード行を含むいくつかのデモファイルだけです。

デモに含まれているCSSファイルとJSファイルを使用して、自分のサイトで使用しようとしましたが、ファイルアップロードプラグインが正しくレンダリングされません。

調査の結果、jquery.fileupload-jquery-ui.jsの_renderUploadメソッドが呼び出されないことがわかりました。同じファイルの_createメソッドも実行しません。これらのメソッドは、ファイルのアップロードの見栄えを良くするためにCSSクラスを追加する責任があります。

これは私が持っているHTMLコードです:

<div class="fileupload-buttonbar">
    <div class="fileupload-buttons">
        <span class="fileinput-button">
            <span>Agregar archivo...</span>
            <input type="file" name="files[]">
        </span>
        <button type="submit" class="start">Importar</button>
    </div>
    <div class="fileupload-progress fade" style="display:none">
        <!-- The global progress bar -->
        <div class="progress" role="progressbar" aria-valuemin="0" aria-valuemax="100"></div>
        <!-- The extended global progress information -->
        <div class="progress-extended">&nbsp;</div>
    </div>
</div>              
<table role="presentation"><tbody class="files"></tbody></table>

そしてこれは初期化です:

$(function () {
            $('#fileupload').fileupload({
                url: '@Url.Action("Import")',
                disableImageResize: false,
                maxFileSize: 30000,
                acceptFileTypes: /(\.|\/)(csv|txt|xls|xlsx)$/i,
                singleFileUploads: true,
                autoUpload: false,
                maxNumberOfFiles: 1,
                change: function (e, data) {
                    alert(data.files.length);
                    $.each(data.files, function (index, file) {
                        $('#import_file').text(file.name);
                        $('button#import').attr('style', 'display: ');
                        $('span#status').text('');
                    });
                },
                add: function (e, data) {
                    alert(data.files);
                    data.context = $('button#import')
                        .click(function () {
                            data.context = $('span#status').text('Importando...');
                            $('button#import').attr('style', 'display: none');
                            data.submit();
                        });
                },
                done: function (e, data) {
                    data.context.text('Completo.');
                    $("#administradores").trigger("reloadGrid", [{ page: 1 }]);
                }
            });

                $('#fileupload').addClass('fileupload-processing');
}

そして最後に、次のCSSファイルを含めることを伝えました:jquery.fileupload-ui.css

そしてこれはこの順序でJSファイルです:

  • jquery.ui.widget.js
  • jquery.iframe-transport.js
  • jquery.fileupload.js
  • jquery.fileupload-process.js
  • jquery.fileupload-validate.js
  • jquery.fileupload-ui.js
  • jquery.fileupload-jquery-ui.js

どんな助けでも大歓迎です

ありがとうハイメ

15
jstuardo

Dividが間違っています。それが問題でした。

よろしく、ハイメ

6
jstuardo