asp.net mvc ajax文件上传
前台页面提交文件 <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>文件操作</title>
</head>
<body>
<form id="upFileForm">
<div style="margin:30px;">
<span style="margin-right:10px;">上传文件</span><input type="file" name="UpFile" id="UpFile" style="width:12%;" />
<input type="button" onclick="upFile()" value="确认上传" />
</div>
</form> <script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/jquery.form.js"></script> <script> //上传文件
function upFile() {
var file = document.getElementById("UpFile").files[0];
if (!file) {
alert("请选择文件!");
return;
}
var size = file.size / 1024 / 1024;
if (size > 50) {
alert("图片文件不能大于50M");
return;
}
$("#upFileForm").ajaxSubmit({
url: "/File/UploadFile",
type: "post",
dataType: "json",
success: function (data) {
if (data == "" || data == "0") {
alert("上传失败");
}
if (data == "2") {
alert("不支持上传该文件");
} else {
alert(JSON.stringify(data));
}
},
error: function (aa) {
alert(aa);
}
});
}
</script> </body>
</html> 后台接收和上传 [HttpPost]
public JsonResult UploadFile()
{
HttpRequest request = System.Web.HttpContext.Current.Request;
HttpFileCollection FileCollect = request.Files;
string path = "";//文件的完整路径
//文件保存目录路径
string imgPathName = DateTime.Now.ToString("yyyyMMdd");//以日期为文件存放的上层文件夹名
string savePath = "/upload/file/" + imgPathName + "/";//文件存放的完整路径
//如果文件路径不存在则创建文件夹
if (!Directory.Exists(Server.MapPath(savePath)))
{
Directory.CreateDirectory(Server.MapPath(savePath));
}
//定义允许上传的文件扩展名
Hashtable extTable = new Hashtable();
extTable.Add("file", "doc,docx,xls,xlsx,ppt,htm,html,txt,zip,rar,gz,bz2"); if (FileCollect.Count > 0)//如果集合的数量大于0,多文件上传情况
{
foreach (string str in FileCollect)
{
HttpPostedFile imgFile = FileCollect[str];//用key获取单个文件对象HttpPostedFile
string fileName = imgFile.FileName;//获取文件名
string fileExt = Path.GetExtension(fileName).ToLower();//获取文件后缀名
//判断文件类型是否正确
if (Array.IndexOf(((string)extTable["file"]).Split(','), fileExt.Substring(1).ToLower()) == -1)
{
//文件类型不正确
return Json("2");
}
string imgName = DateTime.Now.ToString("yyyyMMddhhmmss");//文件别名
string imgPath = savePath + imgName + "-" + imgFile.FileName;//构造文件保存路径
string AbsolutePath = Server.MapPath(imgPath);
imgFile.SaveAs(AbsolutePath);//将上传的东西保存
path = imgPath;//获得文件完整路径并返回到前台页面
}
return Json(path);
}
else
{
//上传失败
return Json("0");
}
}
asp.net mvc ajax文件上传的更多相关文章
- MVC图片上传、浏览、删除 ASP.NET MVC之文件上传【一】(八) ASP.NET MVC 图片上传到服务器
MVC图片上传.浏览.删除 1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ...
- Asp.net mvc 大文件上传 断点续传
Asp.net mvc 大文件上传 断点续传 进度条 概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这 ...
- ASP.NET MVC之文件上传【一】(八)
前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public ActionResult ...
- ASP.NET MVC之文件上传【一】
前言 这一节我们来讲讲在MVC中如何进行文件的上传,我们逐步深入,一起来看看. Upload File(一) 我们在默认创建的项目中的Home控制器下添加如下: public ActionResult ...
- 探索Asp.net mvc 的文件上传
(转自:http://www.cnblogs.com/n-pei/archive/2010/10/15/1852635.html) 最近因为TeamVideo需要用到视频和图片上传功能,所以试着Goo ...
- 探索Asp.net mvc 的文件上传(由浅入深)
代码下载:http://files.cnblogs.com/n-pei/mvcfileupload.zip 最近因为TeamVideo需要用到视频和图片上传功能,所以试着Google了很多资料,和大家 ...
- asp.net mvc 多文件上传
@{ ViewBag.Title = "多文件上传测试"; } <h2>多文件上传测试</h2> <form action="/Demo/I ...
- Asp.net mvc 大文件上传 断点续传 进度条
概述 项目中需要一个上传200M-500M的文件大小的功能,需要断点续传.上传性能稳定.突破asp.net上传限制.一开始看到51CTO上的这篇文章,此方法确实很不错,能够稳定的上传大文件,http: ...
- ASP.NET MVC之文件上传【二】(九)
前言 上一节我们讲了简单的上传以及需要注意的地方,查相关资料时,感觉上传里面涉及到的内容还是比较多,于是就将上传这一块分为几节来处理,同时后续也会讲到关于做上传时遗漏的C#应该注意的地方,及时进行查漏 ...
随机推荐
- 【mq读书笔记】客户端处理消息(回调提交到异步业务线程池,pullRequest重新入队)
看一下客户端收到消息后的处理: MQClientAPIImpl#processPullResponse private PullResult processPullResponse( final Re ...
- LaTeX中的浮动体
浮动体代码及注释: 显示效果:
- Kubernetes日志系统新贵Loki-Stack
Loki简介 Grafana Loki是可以组成功能齐全的日志记录堆栈的一组组件. 与其他日志记录系统不同,Loki是基于仅索引有关日志的元数据的想法而构建的:标签(就像Prometheus标签一样) ...
- BootstrapBlazor 组件库介绍
项目介绍 演示系统地址:https://www.blazor.zone Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建丰富 ...
- HOOK API函数跳转详解
原文链接:https://blog.csdn.net/cosmoslife/article/details/7670951 结合课件逆向11分析
- kali查看本机ip
- celery异步发送短信
1.使用celery异步发送短信 1.1 在 celery_task/mian.py 中添加发送短信函数 # celery项目中的所有导包地址, 都是以CELERY_BASE_DIR为基准设定. # ...
- Echarts的食用方式
写在前面: 最近项目中用到了Echarts做趋势图,博主通过万能的度娘研究了一下.Echarts字段的使用基本都写在代码注释里了,这是博主的第一篇博客,如果哪里写的不好望大家见谅,最后希望本篇博客对大 ...
- js 实现字符串翻转
字符串作在程序中是非常常见的,因为程序中绝大部分的数据都可以当作字符串来处理.在这里介绍几种翻转字符串的方法. (1)使用字符串函数 //使用数组翻转函数 function reverseString ...
- vue 编程式导航
// 命名的路由(这里的name为路由中定义的name名称) this.$router.push({ name: 'user', params: { userId: '123' }}) // 带查询参 ...