【问题标题】:JavaScript File Upload Plugin not workJavaScript 文件上传插件不起作用
【发布时间】:2014-01-09 18:45:25
【问题描述】:

我正在使用这个插件:https://github.com/blueimp/jQuery-File-Upload/wiki,问题是当我点击上传并给按钮保存它调用控制器时,到目前为止一切都很好但是当他点击按钮时需要一些其他属性而且我不会将这些属性与文件一起带来。 遵循代码: /查看

 $("#anexoUpload").fileupload({
                dataType: 'json',
                add: function (e, data) {
                    data.context = $('#salvarAnexo')
                      .on('click', function () {
                          data.submit();
                          $.ajax({
                                  url: "@Url.Action("AdicionarAnexo")",
                                  type: "POST",
                                  cache: false
                              }).done(function (data) {
                              });
                            data.context = $('<p/>').text('Uploading...').appendTo(document.body);
                            data.submit();
                        });
                },
                done: function (e, data) {
                    alert('Arquivo salvo com sucesso!');
                    $(".bar").attr("style", "width:0%;")
                }

<li id="anexo">
                                <span>Anexo</span>
                                <input type="file" name="files[]" id="anexoUpload" />
                                <div id="progress">
                                    <button id="salvarAnexo">Salvar Anexo</button>
                                    <div class="bar" style="width: 0%;"></div>
                                </div>

                            </li>
                });

我认为问题在于点击文件上传中的调用函数。 我使用这个插件不需要在页面上回发并且只输入yes,并且当您插入时还需要两个id用于插入数据库并返回ajax以显示附件列表。

//控制器

   [HttpPost]
        public ActionResult AdicionarAnexo()
        {
            var lista = new List<UploadFilesResult>();
            foreach (string file in Request.Files)
            {
                HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
            }
         }

谢谢

【问题讨论】:

    标签: javascript jquery asp.net ajax asp.net-mvc-4


    【解决方案1】:

    您可以使用 data 属性通过 ajax 调用传递数据

    $.ajax({
        url: "@Url.Action("AdicionarAnexo")",
        type: "POST",
        data: { id1: "id1", id2: "id2" },
        cache: false
    

    })

    然后在你的控制器上

    public ActionResult AdicionarAnexo(string id1, string id2)
    

    你可以为它们命名,只要确保视图上的名称与控制器上的名称完全匹配

    【讨论】:

    • 但在这种情况下,如果我输入他收到文件的 id,这就是问题所在。
    • 我不明白。我认为您需要传递其他信息才能保存到数据库。我的回答会让你通过更多。你说如果你发送更多信息他会得到文件而你不想要这个?你需要什么?
    • 如果在 ajax 调用中我传递了控制器中的 id,我收到了什么?文件未上传
    • 从您发布的代码中,该文件没有通过 ajax 调用传递。 ajax 调用调用控制器上的方法,Request.Files 从视图中提取文件。这是他们讨论 request.files 问题的链接stackoverflow.com/questions/4232347/…
    • 听起来是对的,但我需要这个没有回发。是的,文件没有通过 ajax 调用传递,当我调用这个 ajax 时,传入数据的 id,Request.Files 不起作用。
    猜你喜欢
    • 2013-09-18
    • 1970-01-01
    • 2014-01-09
    • 2010-12-27
    • 2017-03-15
    • 1970-01-01
    • 2013-03-17
    • 2013-12-09
    • 2015-02-11
    相关资源
    最近更新 更多