三层架构中ajax,基于mvc三层架构和ajax技术实现最简单的文件上传
前台页面提交文件
文件操作
上传文件
//上传文件
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);
}
});
}
后台接收和上传
[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");
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
三层架构中ajax,基于mvc三层架构和ajax技术实现最简单的文件上传相关推荐
- 基于mvc三层架构和ajax技术实现最简单的文件上传
<转载> 前台页面提交文件 <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用...
Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界面呈现上,叫我之前使用过的Uploadi ...
- 简述php中文件上传过程,简单php文件上传详细说明
关于文件上传我们讲了很多,这只是一款最基本的简单的文件上传功能,同时本教程也介绍了关于上传的原理以及各种函数的使用与file的参数说明,以及php.ihi设置上传文件大小配置等. 1 如果实现小文件 ...
- ASP.NET MVC实现简单的文件上传与下载
使用ASP.NET MVC实现简单的文件上传与下载. 1.上传文件HTML <form action='@Url.Action("Upload", "File&qu ...
- 【基于SSH框架的个人博客系统06】头像文件上传与前后端分页机制
注意:本项目为博主初学Web开发时所写,所使用的方法都比较笨,不符合主流开发方法.例如,包管理应该使用Maven进行管理而不是手动导入,对前端后端代码的架构也并不是很清晰.大家学习思想即可,可以不用浪 ...
- (转)基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用...
http://www.cnblogs.com/wuhuacong/p/4774396.html Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使 ...
- vueform表单文件上传_峰哥说技术系列-8.Spring Boot文件上传(Form表单和Ajax方式)
今日份主题 Spring Boot文件上传(Form表单和Ajax方式) 在Spring Boot中,和文件上传的主要和MultipartResolver接口有关,他有两个实现类 StandardSe ...
- 基于腾讯COS对象存储SDK使用Python编写的文件上传工具第二版
更多技术文章请访问我的个人博客http://www.rain1024.com NR-TCloud 1.1,更新于2017-02-08 更新说明: 第一版上传时需要将upload.pyc复制到要上传对象 ...
- VS2010中使用NeatUpload实现简单的文件上传功能
neatupload 一个免费的asp.net文件上传组件 项目地址 http://neatupload.codeplex.com/ 首先,从项目网站下载最新版(目前使用的是1.3.26) 在VS20 ...
最新文章
- Qt编写网络调试助手(TCP客户端+TCP服务端+UDP服务端)终极版开源
- ASP.NET Core [1]:Hosting(笔记)
- 一文带你学会国产加密算法SM4的vue实现方案
- pythonweb开发-pythonWeb开发
- Java交换两个Integer-一道无聊的题的思考
- java第七章jdbc课后简答题_javaEE简答题答案
- 分布式实时分析数据库citus数据插入性能优化
- Android 自动判断是电话,网址,EMAIL方法之Linkify
- java算法知识点_Java知识点梳理——数据结构与算法
- kubernetes相关命令
- android rxbus工具类,RxBus的工具类
- 有截图功能的android播放器,Android视频播放器VPlayer发新版本 增加截图功能
- 电脑开机密码忘记了怎么解除
- FlashFXP,flashfxp怎么连接服务器
- 算法——最短路径应用
- java word标签替换_JAVA实现替换WORD模板中的文字和图片
- Synthetic QA Corpora Generation with Roundtrip Consistency
- 流程银行柜面业务系统规划
- 超实用, 程序员,提升英文阅读能力
- java高级——认识网络
热门文章
- 【牛腩新闻发布系统】系统发布06
- 让我们一起认识一下Nodejs
- 正向最大匹配 和逆向最大匹配对比比较
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
- Python标准库——collections模块的Counter类
- LeetCode简单题之旋转字符串
- 计图(Jittor) 1.1版本:新增骨干网络、JIT功能升级、支持多卡训练
- YOLOV4各个创新功能模块技术分析(三)
- 2021年大数据Spark(二十五):SparkSQL的RDD、DF、DS相关操作
- 2021年大数据Spark(六):环境搭建集群模式 Standalone