Ajax.BeginForm 异步上传附件 替代方案
一:问题描述
含有文件信息表单内容,想通过异步上传到服务器,但是使用Ajax.BeginForm上传时,后台无法获取文件信息
二:解决方案
通过 $.ajaxFileUpload 可以实现文件及文本内容上传到服务器的需求, 但是需要引入ajaxfileupload.js文件
三:注意事项
(1):
//表单文本内容,
var data = { RealName: RealName1, Telephone: Telephone1, FlightNumber: FlightNumber1, FlightDate: FlightDate1, ComplaintContent: ComplaintContent1 };
$.ajaxFileUpload({
method: "POST",
url: "/controller/action",//需要链接到服务器地址
secureuri: true,
fileElementId: 'id_ComplaintsPicture',//文件选择框的id属性(也就是type="file"的input的id属性,并不需要把文件值写入到data中)
data: data,//$("#form_2").serialize(),//此写法,只上传文件还可以,文件加文本内容上传无效
success: function (data) {
//上传成功之后的操作
var obj = $.parseJSON(data);//返回值形式需要在 ajaxFileUpload.js文件中修改一下,因为它对你原生的后台返回值进行了修饰,这里我的后台返回值形式为{"result": "0","msg": "返回内容"}
if (obj.result == "0") {
if (obj.msg) {
alert(obj.msg);
} else {
alert("失败!");
}
$("#sub_btn").attr("disabled", false);//id为提交按钮(type="button")
} else {
alert("成功!");
window.location.reload();
}
}, error: function (ret) {
//上传失败之后的操作
alert("网络错误!请重试!");
}
});
(2) ajaxFileUpload.js 文件修改 位置
uploadHttpData 函数的最后返回值修改成 return r.responseText;
(3 ajaxFileUpload.js 文件的 handleError 可能因为你引用的jquery版本的问题而报错“函数不存在"
解决方法:
在ajaxFileUpload.js 文件中加入以下代码
handleError: function (s, xhr, status, e) {
// If a local callback was specified, fire it
if (s.error) {
s.error.call(s.context || s, xhr, status, e);
} // Fire the global callback
if (s.global) {
(s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]);
}
}
四 后台接收方式 .net
public string complaint(HttpPostedFileBase[] ComplaintsPicture)
这里就不介绍如何接收上传的文本框内容了,注意ComplaintsPicture就是type="file"的input ,它的name名称,上面代码表示可以接收多个文件
Ajax.BeginForm 异步上传附件 替代方案的更多相关文章
- MVC 5.0(or5.0↓) Ajax.BeginForm 异步上传附件问题,答案是不能的!
MVC 5.0(or5.0↓) Ajax.BeginForm 异步上传附件问题,答案是不能的! (请注意我这里说的异步!) 来看一下下面这段一步提交file的代码 //前台 .cshtml 文件 & ...
- 关于MVC Ajax.BeginForm()异步上传文件的问题
问题描述: 如果用juqery原生的异步上传方式,只要如下方法即可 $.ajax({ type: "GET", url: "test.json", data: ...
- 文件的上传(表单上传和ajax文件异步上传)
项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...
- 普通文件的上传(表单上传和ajax文件异步上传)
一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...
- 文件的上传(1)(表单上传和ajax文件异步上传)
文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...
- jquery 通过ajax FormData 对象上传附件
之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下 html: <div> 流程图: <input id=& ...
- 使用FormData实现ajax文件异步上传
1.传统的web开发文件上传一般是基于form表单的文件上传,同步的方式,用户体验差,可控性也差 2.异步上传的实现 有以下方式 2.1 借助浏览器插件 一般需要安装一些类似flash的插件 这种方 ...
- Ajax图片异步上传并回显
1.jsp页面 <td width="20%" class="pn-flabel pn-flabel-h"></td> <td w ...
- ajaxfileupload异步上传附件添加參数的方法
1.js文件 // JavaScript Document jQuery.extend({ createUploadIframe: function(id, uri) { //create frame ...
随机推荐
- 区块链Fabric技术在托管业务中的运用初探
区块链Fabric技术在托管业务中的运用初探 什么是Fabric技术 HyperLedger是IBM.Intel等多家公司正开展的一个区块链项目,包含了Fabric.Iroha等多项技术,其中最为活跃 ...
- 简单的python协同过滤程序
博主是自然语言处理方向的,不是推荐系统领域的,这个程序完全是为了应付大数据分析与计算的课程作业所写的一个小程序,先上程序,一共55行.不在意细节的话,55行的程序已经表现出了协同过滤的特性了.就是对每 ...
- 4-Bom&Dom总结篇
其实Bom就是指浏览器的东西,比如弹窗啊.浏览器信息啊等 而Dom则是指文档的东西,就是浏览器里边html的东西,如元素啊.属性啊.事件什么的 但Bom的唯一顶层对象window又包含Dom的顶层对象 ...
- Opencv2.2版本以上CvvImage类的使用
Opencv 2.2以上的版本不再包含CvvImage类,可有时我们在MFC中显示图片仍然需要CvvImage类,特别进行图像的拷贝.显示等操作的时候. 早期版本的CvvImage.h添加进工程也是可 ...
- 介绍shell脚本
简单的说shell就是一个包含若干行Shell或者Linux命令的文件.对于一次编写,多次使用的大量命令,就可以使用单独的文件保存下来, 以便日后使用.通常shell脚本以.sh为后缀.在编写shel ...
- echarts样式修改
本人是查看如下链接: http://down.admin5.com/demo/code_pop/cs/dsj/doc/example/themeDesigner.html# 图示很简洁明了.
- 关于jQuery表单校验
<style> .red{border: 1px solid red;} .wrong-tip{color: red;} </style> <form action=&q ...
- ERROR Worker: All masters are unresponsive! Giving up
启动spark的时候发现,主节点(master)上的Master进程还在,子节点(Worker)上的Worker进程自动关闭. 在子节点上查询log发现: ERROR Worker: All mast ...
- DMI ( Dynamic Method Invocation )
功能: 点击 hello , 调用 execute 函数 点击 update , 调用 update 函数 1.项目结构 2.web.xml <?xml version="1.0&qu ...
- SQL 范式(转载)
装载于"http://www.cnblogs.com/KissKnife/ 理论性的东西,往往容易把人人都看得懂的东西写成连鬼都看不懂,近似于主任医生开的药方.从前学范式的时候,把书中得概念 ...