【问题标题】:Custom file upload button with blueimp jquery file upload带有blueimp jquery文件上传的自定义文件上传按钮
【发布时间】:2014-12-04 18:27:12
【问题描述】:

我正在努力使用 jquery 文件上传插件,只要我在输入字段中选择文件,就会上传我的文件。

我想要一个上传文件的自定义提交按钮..

我该怎么做?

标记:

<span>Add File</span>
<input id="fileupload" type="file" multiple="" data-url="upload.ashx" name="files[]" />

<label for="file_name">Name:</label>
<input type="text" name="file_name" id="file_name" />

<input type="button" id="uploadFileBtn" value="Upload" />

Javascript:

$('#fileupload').fileupload(
{
dataType: 'json',
done: function (e, data) {
    alert("success");                               
}
});

【问题讨论】:

    标签: jquery file-upload blueimp


    【解决方案1】:

    您的输入是否在同一个表单中?

    更改您的代码:

    <form id="fileupload" action="someAction" method="POST" enctype="multipart/form-data">
        <span>Add files</span>
        <input type="file" name="files[]" multiple>
        <button type="submit" class="btn btn-primary start">
            <span>Start upload</span>
        </button>
    </form>
    

    【讨论】:

      【解决方案2】:

      解决方案

      fileupload 有一个 ADD 事件,该事件会在文件被选中后立即触发。我在 ADD 事件中编写了我的点击事件,从而覆盖了默认行为。

      经过测试,它按预期工作。

      解决方案 2 - Jquery 表单插件

      经过一番研究,我找到了一种更好的处理 ajax 文件上传的方法。我正在使用位于以下位置的 Jquery 表单插件:http://www.malsup.com/jquery/form/

      它的工作方式与常规表单一样,可以处理文件输入。

      【讨论】:

      【解决方案3】:

      您可以通过挂钩 add 事件来做到这一点。在那里,您可以阻止上传者执行其默认行为。 jquery-file-upload-docs 解释了这一点,但有点难找。

      以下写在blueimp basic uploader tutorial

      $(function () {
          $('#fileupload').fileupload({
              dataType: 'json',
              add: function (e, data) {
                  data.context = $('<button/>').text('Upload')
                      .appendTo(document.body)
                      .click(function () {
                          data.context = $('<p/>').text('Uploading...').replaceAll($(this));
                          data.submit();
                      });
              },
              done: function (e, data) {
                  data.context.text('Upload finished.');
              }
          });
      });
      

      实际上非常重要的是,您创建的提交按钮不在表单内!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-17
        • 2015-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-23
        • 1970-01-01
        相关资源
        最近更新 更多