基于jQuery通过jQuery.form.js插件实现异步上传

@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta content="width=device-width" /> <script src="https://www.jb51.net/~/Scripts/jquery-1.7.2.min.js"></script> <script src="https://www.jb51.net/~/Scripts/jquery.form.js"></script> <title>upload</title> </head> <body> <form method="post" enctype="multipart/form-data" action="/upload/upload"> 文件名称:<input type="text"><br /> 上传文件:<input type="file" multiple="multiple"><br /> <input type="submit" value="提交"> <img src="#" alt="my img" /> </form> <input type="text" value="170" /> <input type="button" value="提交表单2"> <input type="text" value="" /> <script type="text/javascript"> $(function () { $("#fileForm").ajaxForm({ //定义返回JSON数据,还包括xml和script格式 //clearForm Boolean值属性,表示是否在表单提交成功后情况表单数据 //dataType 提交成果后返回的数据格式,可选值包括xml,json或者script //target 服务器返回信息去更新的页面对象,可以是jquery选择器字符串或者jquer对象或者DOM对象。 //type 提交类型可以是”GET“或者”POST“ //url 表单提交的路径 dataType: 'json', beforeSend: function () { //表单提交前做表单验证 $("#myh1").show(); }, success: function (data) { //提交成功后调用 //alert(data.message); $("#iceImg").attr('src', '/upload/img/' + data.fileName); $("#myh1").hide(); //防止重复提交的方法 //1.0 清空表单数据 $('#fileForm').clearForm(); //2.0 禁用提交按钮 //3.0 跳转页面 } }); $("#myfile").change(function () { $("#submitBtn").click(); }); $("#iceImg").click(function () { $("#myfile").click(); }); }); </script> <h1>加载中...</h1> </body> </html>

后台代码:

using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Web; using System.Web.Mvc; namespace IceMvc.Controllers { public class UploadController : Controller { // // GET: /Upload/ public ActionResult Index() { return View(); } [HttpPost] public ActionResult Upload() { var filesList = Request.Files; for (int i = 0; i < filesList.Count; i++) { var file = filesList[i]; if (file.ContentLength > 0) { if (file.ContentLength > 5242880) { return Content("<script>alert('注册失败!因为您选择图片文件不能大于5M.');window.location='/User/Register';</script>"); } //得到原图的后缀 string extName = System.IO.Path.GetExtension(file.FileName); //生成新的名称 string newName = Guid.NewGuid() + extName; string imgPath = Server.MapPath("/upload/img/") + newName; if (file.ContentType.Contains("image/")) { using (Image img = Image.FromStream(file.InputStream)) { img.Save(imgPath); } var obj = new { fileName = newName }; return Json(obj); } else { //return Content("<script>alert('注册失败!因为您未选择图片文件.');window.location='/User/Register';</script>"); } } } return Content(""); } public ActionResult Afupload() { return View(); } } }

以上就是针对jquery.form.js实现异步上传的方法,希望对大家的学习有所帮助。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgzyxy.html