[Asp.net mvc]jquery.form.js无刷新上传
写在前面
最近在自己的网盘项目中想用ajax.beginform的方式做无刷新的操作,提交表单什么的都可以,但针对文件上传,就是个鸡肋。在网上查找了发现很多人都遇到了这个问题,大部分都推荐使用jquery.form.js的插件实现。
demo
首先通过nuget安装插件jquery.form.js
引入js文件
<script src="~/Scripts/jquery.form.min.js"></script>
前端调用的代码
@{
ViewBag.Title = "Upload";
}
<form enctype="multipart/form-data" method="post" id="upload">
<input type="file" id="fileupload" name="Upload" />
@* button 而不是 submit *@
<input type="button" value="上传" id="btn">
</form>
<script>
$("#btn").click(function () {
$("#upload").ajaxSubmit({
url: "../test/UploadFile",
type: "post",
success: function (data) {
console.log(data);
},
error: function (aa) {
console.log(aa);
}
});
});
</script>
可以对其设置刷新的区域
target: "#myheader",//刷新的区域
clearForm: true, // clear all form fields after successful submit
resetForm: true, // reset the form after successful submit
服务端代码
public class TestController : Controller
{
// GET: Test
public ActionResult Upload()
{
return View();
}
[HttpPost]
public JsonResult UploadFile()
{
HttpPostedFileBase file = Request.Files[];
if (file != null)
{
string fileName = Path.GetFileName(file.FileName);
string fileExt = Path.GetExtension(file.FileName);
string fileNewName = Guid.NewGuid() + fileExt;
string fileSaveDir = Server.MapPath("~/upload");
if (!Directory.Exists(fileSaveDir))
{
Directory.CreateDirectory(fileSaveDir);
}
file.SaveAs(Path.Combine(fileSaveDir, fileName));
return new JsonResult
{
Data = new
{
_code = ,
_msg = "上传成功",
_data = new
{
_url = "/upload/" + fileNewName,
_oldName = fileName
}
}
,
JsonRequestBehavior = JsonRequestBehavior.DenyGet
};
}
return new JsonResult { Data = new { _code = , _msg = "上传失败" }, JsonRequestBehavior = JsonRequestBehavior.DenyGet };
}
}
测试

jquery.form上传文件内部是怎么实现无刷新的呢?
调试下js你会发现,内部是通过iframe实现的无刷新上传,如下图所示:

总结
最近在网盘项目中用到了上传,本来打算使用ajax.beginform实现,发现并实现不了。只能用jquery.form插件代替了。
[Asp.net mvc]jquery.form.js无刷新上传的更多相关文章
- jQuery.form Ajax无刷新上传错误 (jQuery.handleError is not a function) 解决方案
今天,随着ajaxfileupload时间firebug财报显示,"jQuery.handleError is not a function"错误.因为一旦使用jQuery.for ...
- 文件上传---form表单,ajax,jquery,以及iframe无刷新上传 (processData,contentType讲解)
服务端程序: import tornado.web import os IMG_LIST=[] class IndexHandler(tornado.web.RequestHandler): def ...
- jQuery AJAX 网页无刷新上传示例
新年礼,提供简单.易套用的 jQuery AJAX 上传示例及代码下载.后台对文件的上传及检查,以 C#/.NET Handler 处理 (可视需要改写成 Java 或 PHP). 有时做一个网站项目 ...
- jquery ajax php 无刷新上传文件 带 遮罩 进度条 效果的哟
在很多项目中都会叫用户上传东西这些的,自从接触了jquery 和ajax之后就不管做什么,首先都会想到这个,我这个人呢?是比较重视客户体验的,这次我这边负责的是后台板块,然后就有一块是要求用户上传照片 ...
- jquery.form.js实现异步上传
前台页面 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewpor ...
- jquery.form.js ajax提交上传文件
项目中最近有用到表单提交,是带有图片上传的表单录入,需要ajax异步提交,网上找了好多例子都是只能提交上传字段一个信息的,这里整理一下.表单里有普通文本信息字段也有图片上传字段. 1.jsp代码--引 ...
- jquery.form.js 实现异步上传
前台: <form id="formSeacrh" action="/ResumeInfo/uploadFile" method="post&q ...
- asp.net使用jquery.form实现图片异步上传
首先我们需要做准备工作: jquery下载:http://files.cnblogs.com/tianguook/jquery1.8.rar jquery.form.js下载:http://files ...
- 解决 jquery.form.js和springMVC上传 MultipartFile取不到信息
前段页面: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEnc ...
随机推荐
- Thinking in java学习笔记之垃圾回收器如何工作
垃圾回收器使得java在堆上分配空间的速度可以和其他语言从堆栈上分配空间的速度媲美.
- springMVC的@ResponseBody、@RequestBody使用需要注意的地方
springMVC我觉得比struts2好的其中一个原因就是可以使用注解解析json数据,方便快捷.但是,即使如此,还是有需要注意的地方. 1.返回的地方设置@ResponseBody,请求的对象参数 ...
- AS技巧合集「编码技巧篇」
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=254725&extra=page%3D2%26filter%3Dautho ...
- 【uoj58】 WC2013—糖果公园
http://uoj.ac/problem/58 (题目链接) 题意 给定一棵树,每个点有一个颜色,提供两种操作: 1.询问两点间路径上的${\sum{v[a[i]]*w[k]}}$,其中${a[i] ...
- uva12716 gcd
题意:给出N,1<=b<=a<=N,求满足gcd(a,b)=a xor b的pair (a,b)的个数 有个重要的结论:若gcd(a,b)=a xor b=c,那么b=a-c 如果一 ...
- POJ 2976 Dropping tests(最大化平均值 or 01整数规划)
题目链接 忽略运算符逻辑导致奇怪的错误(代码中指明位置了) 输出没加0.5,WA. 还有,注意特殊情况k=0,所以scanf("%d%d", &n, &k)& ...
- C#用HttpClient抓取jd.com搜索框下拉数据
添加System.Web.dll引用 添加System.Net.Http引用 using System.Net.Http; using System.Web; string key = "电 ...
- HDU 3038 How Many Answers Are Wrong(带权并查集)
传送门 Description TT and FF are ... friends. Uh... very very good friends -________-b FF is a bad boy, ...
- java编程思想-java中的并发(一)
一.基本的线程机制 并发编程使我们可以将程序划分为多个分离的.独立运行的任务.通过使用多线程机制,这些独立任务中的每一个都将由执行线程来驱动. 线程模型为编程带来了便利,它简化了在单一程序中同时jia ...
- java编程思想-java IO系统
一.输入和输出 编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象."流"屏蔽了实际的I/O设备中处理数据的细节. J ...