2

我正在尝试在 DotNetNuke 中使用 Aquantum 多文件上传,但无法正常工作。显然是因为我无法设置表单标签。

有人知道如何在不使用表单标签的情况下实现连接吗?

例如:示例显示以下内容:

    <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

查看文档,您似乎需要使用一个form来支持 IE 和 Opera,但 DNN 中唯一form可用的是主要的 WebForms。您可能需要考虑将 FileUpload.ashx 行为移动到 web.config 中设置的 HttpHandler 中。然后您可以在 DNN 之前处理请求(使用 jQuery 插件上的选项向帖子添加某种标志formData,然后在您的处理程序中查找)。

查看您的代码,它似乎应该适用于其他浏览器。文档中的第一个常见问题解答说您只需要设置urlmethodfieldName选项来解决支持它的浏览器的表单(因此您可以尝试设置fieldName并查看是否有帮助)。

你看到什么问题?任何 JavaScript 错误?您的 ASHX 处理程序是否被击中?

于 2011-03-31T16:07:50.827 回答