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#应该注意的地方,及时进行查漏 ...
随机推荐
- C语言讲义——函数递归
函数直接或间接调用自身 每次调用必须获得一些进展,进一步靠近目标 达到目标就不再调用自身 阅读递归函数不要纠缠于执行过程,而是相信递归函数会顺利完成任务 例:阶乘 0! =1(0 的阶乘定为1) 1! ...
- 【坑爹的mybtis plus】wrapper.in击垮了我们的数据库!
mybatis plus让我们从很大程度上实现了用"java去写sql",但是有些很隐晦的使用方式,如果不注意的话,也会引起错误: 如果.in的时候给了一个null,这个时候并不会 ...
- Windows 的这款工具,有时让我觉得 Mac 不是很香
上次写了个 cheat.sh 在手,天下我有,小伙伴们热情高涨,觉得这是一个没有杂质的好工具:也有小伙伴抱怨说对 Windows 用户不是特别友好 (其实用 curl API 是没啥问题的).为了「雨 ...
- VS Code C++ 项目快速配置模板
两个月前我写过一篇博客 Windows VS Code 配置 C/C++ 开发环境 ,主要介绍了在 VS Code 里跑简单 C 程序的一些方法.不过那篇文章里介绍的方法仅适用于单文件程序,所以稍微大 ...
- MacOS JMeter安装(多图)
本文基于 MacOS 环境下进行 Jmeter 的安装. 一.下载JMeter 本文选用 JMeter 5.3 版本安装,5.3 版本需要 JDK 1.8 + 版本环境. Jmeter 5.3 下载: ...
- dubbo源码学习(一)dubbo容器启动流程简略分析
最近在学习dubbo,dubbo的使用感觉非常的简单,方便,基于Spring的容器加载配置文件就能直接搭建起dubbo,之前学习中没有养成记笔记的习惯,时间一久就容易忘记,后期的复习又需要话费较长的时 ...
- 第14.12节 Python中使用BeautifulSoup解析http报文:使用select方法快速定位内容
一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>和<第14.11节 Python中使用BeautifulSo ...
- PyQt(Python+Qt)学习随笔:QTreeView树形视图的uniformRowHeights属性
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 uniformRowHeights属性用于控制视图中所有数据项是否保持相同高度,所有高度都与视图中第 ...
- linux进程管理(linux命令安装、进程生命周期、进程状态)
1 linux下如何杀掉进程 1)找到包名所占用的端口: ps aux | grep cbs_portal-1.0.1.jar(包名) 2)杀掉进程: kill 10942(端口号) PS: //-- ...
- tensorflow 指定版本安装
首先,建议在anaconda中创建虚拟环境,教程已写,参考上一篇 下载之前建议设置pip清华源(用以提速,可百度) 设置下载源 pip config set global.index-url http ...