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


Posted in Javascript onDecember 13, 2015

本文主要从前台和后台代码分析了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("/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实现异步上传的方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
JavaScript读取中文cookie时的乱码问题的解决方法
Oct 14 Javascript
JavaScript 继承机制的实现(待续)
May 18 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
Apr 18 Javascript
JS字符串处理实例代码
Aug 05 Javascript
快速解决FusionCharts联动的中文乱码问题
Dec 04 Javascript
javascript事件处理模型实例说明
May 31 Javascript
jQuery插件passwordStrength密码强度指标详解
Jun 24 Javascript
在线引用最新jquery文件的实现方法
Aug 26 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
Sep 04 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
Jun 29 Javascript
vue 父组件通过v-model接收子组件的值的代码
Oct 27 Javascript
原生js实现日期选择插件
May 21 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
Dec 13 #Javascript
JS如何判断是否为ie浏览器的方法(包括IE10、IE11在内)
Dec 13 #Javascript
javascript性能优化之DOM交互操作实例分析
Dec 12 #Javascript
JavaScript文档碎片操作实例分析
Dec 12 #Javascript
javascript性能优化之事件委托实例详解
Dec 12 #Javascript
jsonp跨域请求数据实现手机号码查询实例分析
Dec 12 #Javascript
jQuery Validate初步体验(二)
Dec 12 #Javascript
You might like
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
php的一个简单加密解密代码
2014/01/14 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
PHP rsa加密解密算法原理解析
2020/12/09 PHP
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
js中同步与异步处理的方法和区别总结
2013/12/25 Javascript
jQuery 中国省市两级联动选择附图
2014/05/14 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
jQuery中extend函数详解
2015/07/13 Javascript
jquery获得当前html页面源码的方法
2015/07/14 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
jQuery查找和过滤_动力节点节点Java学院整理
2017/07/04 jQuery
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
解决一个微信号同时支持多个环境网页授权问题
2019/08/07 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
python自动发微信监控报警
2019/09/06 Python
详解Python中namedtuple的使用
2020/04/27 Python
Python能做什么
2020/06/02 Python
openCV提取图像中的矩形区域
2020/07/21 Python
Python 操作SQLite数据库的示例
2020/10/16 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
《海底世界》教学反思
2014/04/16 职场文书
消防安全承诺书
2014/05/22 职场文书
安全隐患整改报告
2014/11/06 职场文书
2014年扶贫帮困工作总结
2014/12/09 职场文书
基层党建工作简报
2015/07/21 职场文书
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫