jquery ajax file upload NET MVC 无刷新文件上传
网上有各种各样的文件上传方法,有基于JS框架的、也有基于flash swf插件的。
这次分享一个比较简单而且实用能快速上手的文件上传方法,主要步骤:
1.引用Jquery包,我用的是jquery-1.11.3.min.js 版本
2.编写JS代码
3.HTML中增加type=file控件
代码如下:
HTML代码:
<form id="fileupload" method="post" enctype = "multipart/form-data">
<input type="file" id="fileid" name="fileid" accept="application/vnd.ms-excel">
<input type="button" id="confirmuploadid" value="上传" />
</form>
//JS实现
$('#confirmuploadid').on('click', function () {
uploadProduct();
});
function uploadProduct() {
var formid = $("#fileupload");
var fd = new FormData(formid[0]); //form表单的方式实例化一个formData
fd.append('file', $('#fileid')[0].files);
fd.append('userid', userid);
$.ajax({
url: 'File/Setting',
type: 'POST',
dataType: 'JSON',
data: fd,
async: false,
cache: false,
contentType: false,
processData: false,
beforeSend: function () {
$("#confirmuploadid").prop("disabled", true);
},
success: function (returndata) {
$("#confirmuploadid").prop("disabled", false);
alert(returndata.Message);
},
error: function (returndata) {
alert("上传失败,请检查数据正确性,如:有些数字输入项,是否输入了字符!");
}
});
}
//MVC实现
public class FileController : Controller
{
[HttpPost]
public ActionResult Setting()
{
string userid = ""; string username = "";
FunctionBackMessage functionBackMessage = new FunctionBackMessage();
functionBackMessage.IsSuccess = false;
functionBackMessage.Message="上传失败,稍后重试!";
if (!string.IsNullOrEmpty(username))
{
HttpFileCollectionBase files = Request.Files;
string _urlstr = Request.Url.AbsoluteUri;
FunctionBackMessage fc = new FunctionBackMessage();
fc.IsSuccess = true; fc.Message = "上传成功";
if (files.AllKeys.Length > )
{
for (int i = ; i < files.AllKeys.Length; i++)
{
var myFile = files[i];
double myFileLength = myFile.ContentLength / 1024.0 / 1024.0;
int InputMediaExcelLength = !string.IsNullOrEmpty(Global.GetAppString("InputMediaExcelLength")) ? int.Parse(Global.GetAppString("InputMediaExcelLength")) : ; if (myFileLength > InputMediaExcelLength)//超出指定大小
{
fc.IsSuccess = false; fc.Message = "为了保证数据处理效率,每次上传文件小于" + InputMediaExcelLength + "M,如超出请拆分记录分多次上传!";
}
else
{
// string projectId = context.Request["projectId"];
// string username = context.Request["username"];
if ((!Path.GetExtension(myFile.FileName).Contains("xls") && !Path.GetExtension(myFile.FileName).Contains("xlsx")))
{
functionBackMessage.IsSuccess = false; functionBackMessage.Message = "请上传Excel格式文件!";
return Json(functionBackMessage, "application/json");
}
//文件保存
string uploadPath = HttpContext.Current.Server.MapPath("/tempfile") + "\\";//服务器临时路径(不含文件名和后缀)
if (!Directory.Exists(uploadPath))
{
Directory.CreateDirectory(uploadPath);
}
string fileName = DateTime.Now.Ticks + "_" + myFile.FileName;
string fileFull = uploadPath + fileName;//文件路径,包含文件名和后缀 try
{ myFile.SaveAs(fileFull);//保存文件
}
catch (Exception ex)
{
com.log.Loger.Debug("uploadMediaSource 保存文件失败", ex);
} }
}
}
else
{
functionBackMessage.IsSuccess = false; functionBackMessage.Message = "没有获取到上传文件";
}
}
return Json(functionBackMessage, "application/json");
}
}
jquery ajax file upload NET MVC 无刷新文件上传的更多相关文章
- SpringMVC ajax技术无刷新文件上传下载删除示例
参考 Spring MVC中上传文件实例 SpringMVC结合ajaxfileupload.js实现ajax无刷新文件上传 Spring MVC 文件上传下载 (FileOperateUtil.ja ...
- 【JS】ajax 实现无刷新文件上传
一.摘要 最近在做个东西,需要实现页面无刷新文件上传,目前看到的方法有两种 1) 通过隐藏iframe 实现页面无刷新,适用于不关心上传结果 <form target="hiddenF ...
- Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)
Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...
- 使用PHP和HTML5 FormData实现无刷新文件上传教程
无刷新文件上传是一个常见而又有点复杂的问题,常见的解决方案是构造 iframe 方式实现. 在 HTML5 中提供了一个 FormData 对象 API,通过 FormData 可以方便地构造一个表单 ...
- Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦苦来 实现呢?我并不否认”拿来主义“,只是我个人更喜欢凡是求个所以 ...
- ie8实现无刷新文件上传
ie8由于无法使用FormData,想要无刷新上传文件就显得比较麻烦.这里推荐使用jQuery-File-Upload插件,它能够很方便的解决ie8无刷新文件上传问题.(最低兼容到ie6) jQuer ...
- 实用ExtJS教程100例-009:ExtJS Form无刷新文件上传
文件上传在Web程序开发中必不可少,ExtJS Form中有一个filefield字段,用来选择文件并上传.今天我们来演示一下如何通过filefield实现ExtJS Form无刷新的文件上传. 首先 ...
- 定制jQuery File Upload为微博式单文件上传
日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性使用 2.5 许可协议』进行许可. jQuery File Upload是一个非常优秀的上传组件,主要使用了XHR作为上传方 ...
- 基于jQuery Ajax实现无刷新文件上传
最近因项目需求更改,需要实现选择文件后即时上传至服务器,然后提交后,加载xls表格内容到jqgrid表格中,文件上传功能实现示例: 前端jsp页面: <form id="uploadF ...
随机推荐
- 牛客小白月赛1 A-简单题
描述 Etéreo 是个爱学习的好孩子.在年假期间,他依然热情于数学.他最近发现了一个高大上的东西:,他觉得这里的 非常的厉害!然后他又告诉你:,,他会告诉你 和 ,想请你告诉他 的值.当然这 ...
- 直播-srs起步
srs简介 https://github.com/ossrs/srs/wiki/v2_CN_Home 原料 CentOS Linux release 7.2.1511 (Core) ffmpe ...
- FineReport破解心得
注:写文档目的主要用于技术学习,了解技术帆软公司技术大牛是怎么设计系统,请勿用于商用. 一. 工具准备 1. javassist:class代码修改工具 2. ...
- Linux中断子系统:级联中断控制器驱动
Linux中断子系统 Linux中断子系统是个很大的话题,如下面的思维导图所示,包含硬件.驱动.中断上半部.中断下半部等等.本文着眼于中断控制器(PIC),特别是级联中断控制器驱动部分,对驱动的设计和 ...
- WebGL 3D 电信机架实战之数据绑定
前言 在前端中,视图层和数据层需要进行单向或者双向数据绑定,大家都已经不陌生了,有时候 2D 做的比较顺了之后,就会想要挑战一下 3D,不然总觉得痒痒的.这个 3D 机架的 Demo 我觉得非常有代表 ...
- [模拟赛] T3 最优序列
Description 给出一个长度为n(n<=1000)的正整数序列,求一个子序列,使得原序列中任意长度为m的子串中被选出的元素不超过k(k<=m<=10)个,并且选出的元素之和最 ...
- Webpack的加载器
一.什么是加载器(loaders)loaders 用于转换应用程序的资源文件,他们是运行在nodejs下的函数 使用参数来获取一个资源的来源并且返回一个新的来源(资源的位置),例如:你可以使用load ...
- 【Zabbix】 Zabbix表结构说明【转载】
本文转自[https://www.cnblogs.com/shhnwangjian/p/5484352.html] 参考文[https://www.cnblogs.com/learningJAVA/p ...
- 手把手 git建立仓库,远程推拉及常用git命令和部分Linux命令集锦
方法一:直接在GitHub上建立一个项目,然后git clone (git address name): 此时已经建立好了一个git仓库: cd 文件夹 > 添加文件进去 >git add ...
- HA集群heartbeat配置--Nginx
HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,两台机器A和B,正常是A提供服务,B待命限制,当A宕机或服务宕掉,会切换至B机器继续提供服务.常用实现高可 ...