51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

本文主要从前台和后台代码分析了jquery.form.js实现异步上传的方法,分享给大家,具体代码如下

前台代码:


@{
 Layout = null;
}
<!DOCTYPE html>
<html>
<head>
 <meta name="viewport" content="width=device-width" />
 <script src="~/Scripts/jquery-1.7.2.min.js"></script>
 <script src="~/Scripts/jquery.form.js"></script>
 <title>upload</title>
</head>
<body>
 <form id="fileForm" method="post" enctype="multipart/form-data" action="/upload/upload">
  文件名称:<input name="fileName" type="text"><br />
  上传文件:<input name="myfile" type="file" multiple="multiple"><br />
  <input id="submitBtn" type="submit" value="提交">
  <img src="#" alt="my img" id="iceImg" width="300" height="300" style="display: block;" />
 </form>

<input type="text" name="height" value="170" /> <input id="sbtn2" type="button" value="提交表单2">

<input type="text" name="userName" 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 id="myh1" style="display: none;">加载中...</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(&quot;/upload/img/&quot;) + newName;

 if (file.ContentType.Contains(&quot;image/&quot;))
 {
  using (Image img = Image.FromStream(file.InputStream))
  {
   img.Save(imgPath);
  }
  var obj = new { fileName = newName };
  return Json(obj);
 }
 else
 {
  //return Content(&quot;&lt;script&gt;alert('注册失败!因为您未选择图片文件.');window.location='/User/Register';&lt;/script&gt;&quot;);
 }
}

}

return Content(""); }

public ActionResult Afupload() { return View(); } } }

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


赞(3)
未经允许不得转载:工具盒子 » 基于jQuery通过jQuery.form.js插件实现异步上传