none
JQuery Ajax 提交文件问题。看到【杨琦】在相关帖子中回复过,但未提供思路,请您补充! RRS feed

  • 问题

  •  <form action='<%= Url.Action("AjaxUpload","Home") %>' method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>Ajax上传研究</legend>
            <p>
                <input id="Text1" name="Text1" type="text" />
            </p>
            <p>
                <input id="Text2" name="Text2" type="text" />
            </p>
            <p>
                <input id="Text3" name="Text3" type="text" />
            </p>
            <p>
                <input id="File1" name="File1" type="file" />
            </p>
            <p>
                <input id="submit" type="submit" value="submit" /></p>
        </fieldset>
        </form> 

     

    $(function() {
                $("#submit").click(function() {
                    $.ajax({
                    url: '<%= Url.Action("AjaxUpload","Home") %>',
                        type: 'POST',
                        data:"File1=" + $("#File1").val(),
                        success: function(msg) {
                            alert(msg);
                        }
                    });

                    return false;
                });
            });

    代码有点冗余,这样server获取不到file,请给个ajax上传文件的思路。

    Jquery 里如何ajax 提交呢?

    2010年4月4日 2:34

答案

  • 你好,

    一般所谓的ajax上传文件是通过隐藏的或者是临时的iframe等这些东西上传的。

    现成的可以满足你的需求的有微软提供的异步上传。

    http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx

    如果自己要做可以专门写一个用来处理上传文件的页面,采用iframe等,设置它的src,用javascriptsubmit。

    当保存文件后用Response.Write返回你需要的信息应该是可以办到的。


    Microsoft Online Community Support
    • 已标记为答案 KeFang Chen 2010年4月9日 2:55
    • 取消答案标记 dbens 2010年4月9日 6:45
    • 已标记为答案 dbens 2010年4月9日 6:54
    2010年4月5日 6:53

全部回复

  •  <form action='<%= Url.Action("AjaxUpload","Home") %>' method="post" enctype="multipart/form-data">
        <fieldset>
            <legend>Ajax上传研究</legend>
            <p>
                <input id="Text1" name="Text1" type="text" />
            </p>
            <p>
                <input id="Text2" name="Text2" type="text" />
            </p>
            <p>
                <input id="Text3" name="Text3" type="text" />
            </p>
            <p>
                <input id="File1" name="File1" type="file" />
            </p>
            <p>
                <input id="submit" type="submit" value="submit" /></p>
        </fieldset>
        </form> 

     

    $(function() {
                $("#submit").click(function() {
                    $.ajax({
                    url: '<%= Url.Action("AjaxUpload","Home") %>',
                        type: 'POST',
                        data:"File1=" + $("#File1").val(),
                        success: function(msg) {
                            alert(msg);
                        }
                    });

                    return false;
                });
            });

    代码有点冗余,这样server获取不到file,请给个ajax上传文件的思路。

    Jquery 里如何ajax 提交呢?


    <form id="form" action='<%= Url.Action("AjaxUpload","Home") %>' method="post" enctype="multipart/form-data"
        target="iframe">
        <fieldset>
            <legend>Ajax</legend>
            <p>
                <input id="File1" name="File1" type="file" />
            </p>
            <p>
                <input id="File2" name="File2" type="file" />
            </p>
            <p>
                <input id="submit" type="submit" value="submit" /></p>
        </fieldset>
        </form>
        <iframe id="iframe" name="iframe" style="display: none"></iframe>

     

    这样文件实现上传了,但如何获取服务器的返回信息呢?

    public ActionResult AjaxUpload()
            {
                //if (!Request.IsAjaxRequest())
                //    return Content("!IsAysoc.");
                var file0 = Request.Files[0];
                var file1 = Request.Files[1];

                file0.SaveAs(Server.MapPath("~/") + file0.FileName);
                file1.SaveAs(Server.MapPath("~/") + file1.FileName);

                return Content("Hello");
            }

    页面什么都没有显示。

    2010年4月4日 5:36
  • 你好,

    一般所谓的ajax上传文件是通过隐藏的或者是临时的iframe等这些东西上传的。

    现成的可以满足你的需求的有微软提供的异步上传。

    http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx

    如果自己要做可以专门写一个用来处理上传文件的页面,采用iframe等,设置它的src,用javascriptsubmit。

    当保存文件后用Response.Write返回你需要的信息应该是可以办到的。


    Microsoft Online Community Support
    • 已标记为答案 KeFang Chen 2010年4月9日 2:55
    • 取消答案标记 dbens 2010年4月9日 6:45
    • 已标记为答案 dbens 2010年4月9日 6:54
    2010年4月5日 6:53