2

DotNetNuke でAquantum Multiple File Uploadを使用しようとして いますが、機能しません。どうやら、フォームタグを設定できないためです。

フォームタグを使用せずにプラグインを実装する方法を知っている人はいますか?

例: サンプルは次のように表示されます。

    <form id="file_upload" class="file_upload" runat="server">
      <div id = "filediv">
        <input type="file" name="file" multiple>
        <button>Upload</button>
        <div>Upload files</div>
      </div>
      <table id="files"></table> ...
    </form>

しかし、私は次のことができるようにしたいと思います:

    <div id="file_upload" class="file_upload" runat="server">
      <div id = "filediv">
        <input type="file" name="file" multiple>
        <button>Upload</button>
        <div>Upload files</div>
      </div>
      <table id="files"></table> ...
    </div>

私が使用しているJavascriptはこれです:

  <script>
        /*global $ */
        $(function() {


            $('.file_upload').fileUploadUI({
                url: 'FileUpload.ashx',
                method: 'POST',
                uploadTable: $('#files'),
                downloadTable: $('#files'),
                buildUploadRow: function (files, index) {
                    return $('<tr><td>' + files[index].name + '<\/td>' +
                        '<td class="file_upload_progress"><div><\/div><\/td>' +
                        '<\/td><\/tr>');
                },
                buildDownloadRow: function(file) {
                return $('<tr id="file_'+file.name+'"><td>' + file.name + '<\/td>'
                    + '<td class="file_uploaded">' +
                    '<span class="ui-icon ui-icon-check"><\/span>' +
                    '<\/td><\/tr>');

                }, beforeSend: function(event, files, index, xhr, handler, callBack) {
                    if (files[index].size > 500000) {
                        handler.uploadRow.find('.file_upload_progress').html('<span class="ui-icon ui-icon-alert"><\/span>FILE TOO BIG!');
                        setTimeout(function() {
                            handler.removeNode(handler.uploadRow);
                        }, 10000);
                        return;
                    }
                    callBack();
                }
            });
        });
    </script> 

ありがとう!どんな助けでも大歓迎です!

4

1 に答える 1

1

ドキュメントを見ると、formIE と Opera をサポートするには a を使用する必要があるようですがform、DNN で利用できるのはメインの WebForms のみです。FileUpload.ashx の動作を、web.config で設定されている HttpHandler に移動することを検討してください。次に、DNN が処理する前にリクエストを処理できます (jQuery プラグインのオプションを使用して投稿にある種のフラグを追加formDataし、ハンドラーでそれを探します)。

コードを見ると、他のブラウザでも機能するはずです。ドキュメントの最初の FAQ には、フォームをサポートするブラウザーのフォームを回避するには、、、およびオプションを設定するだけでよいと書かれています (設定urlmethodてみて、それが役立つかどうかを確認してください)。 fieldNamefieldName

どのような問題が発生していますか? JavaScript エラーはありますか? あなたの ASHX ハンドラーはまったくヒットしていますか?

于 2011-03-31T16:07:50.827 に答える