三层架构中ajax,基于mvc三层架构和ajax技术实现最简单的文件上传

本文介绍了一个前端页面文件上传的JavaScript实现,包括限制上传文件大小和类型,并使用Ajax进行异步提交。后端使用C#处理上传请求,保存文件到指定路径,并对文件类型进行检查。上传失败或文件类型不支持时会给出相应提示。
摘要由CSDN通过智能技术生成

c4468b3f4df77e96b0a416fa2a870fba.png

前台页面提交文件

文件操作

上传文件

//上传文件

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

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自行车管理系统是一个用于管理自行车租赁和归还的系统。下面是实现该系统的一种方法: 首先,我们可以使用Python编程语言,结合Flask框架来构建Web应用程序。Flask是一个轻量级的Web框架,具有简单易学、灵活可扩展的特点,非常适合快速开发小规模的Web应用。 其次,我们需要使用MySQL数据库来存储自行车的相关信息。MySQL是一个常用的关系型数据库管理系统,可以提供稳定可靠的数据存储和查询功能。 在系统的架构设计上,我们可以采用MVC(Model-View-Controller)模式。MVC模式是一种常用的软件设计模式,通过将应用程序分为三个部分,即模型(Model)、视图(View)和控制器(Controller),来实现应用程序的逻辑分离和代码复用。 在模型层(Model),我们可以创建一个自行车类,用于表示自行车的相关属性和行为。可以在数据库创建一个自行车表,用于存储自行车的信息,例如自行车编号、品牌、型号等。 在视图层(View),我们可以使用HTML和CSS来创建用户界面,用于显示自行车的列表、详情和操作界面。可以通过模板引擎来动态生成HTML页面,将后端数据与前端界面进行交互。 在控制器层(Controller),我们可以使用Flask框架的路由功能来处理用户请求,并实现对自行车的增删改查操作。可以定义一系列的路由函数,用于处理用户请求,例如显示自行车列表、添加自行车、修改自行车信息等。 最后,我们可以使用Ajax技术实现页面的异步更新和局部刷新,提升系统的用户体验。通过使用JavaScript和XMLHttpRequest对象,可以实现向服务器发送异步请求,并在不刷新整个页面的情况下更新部分页面内容。 通过以上的技术选择和架构设计,我们可以实现一个基于Python、Flask、MySQL的MVC架构的自行车管理系统,提供数据存储、用户界面、业务逻辑和页面更新等功能,方便用户进行自行车的管理和租赁。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值