后端:Layui实现文件上传功能

今天给大家分享采用AspNet MVC+前端框架LayUi实现文件上传功能,感兴趣的朋友可以学习一下。

文件上传实体(UploadFile.cs)

  public class UploadFile{public int code { get; set; }   //请求codepublic string msg { get; set; } // 请求消息public string src { get; set; } //文件路径public string filename { get; set; } //原始文件名}

前端代码(Upload.cshtml):

@{Layout = null;
}
<!DOCTYPE html>
<html>
<head><meta name="viewport" content="width=device-width" /><title>文件上传示例</title><link href="~/Content/lib/layui/css/layui.css" rel="stylesheet" /><link href="~/Content/css/common.css" rel="stylesheet" /><script src="~/Content/lib/layui/layui.js"></script>
</head>
<body><div><div class="layui-input-inline layui-btn-container" style="width: auto;"><button type="button" class="layui-btn layui-btn-primary" id="btnUpload"><i class="layui-icon">&#xe67c;</i>上传附件</button><div id="layer-photos-demo" class="fr"><img id="imgPhoto" style="height:100px;width:100px;"src="" alt=""></div></div><div><table class="layui-table"><colgroup><col width="150"><col width="200"></colgroup><thead><tr><th>文件名称</th><th>操作</th></tr></thead><tbody id="uploadList"></tbody></table></div></div><script type="text/javascript">layui.use(["upload"], function () {var upload = layui.upload;var $ = layui.$;upload.render({elem: '#btnUpload',url: '/Upload/UploadFile',size: '2048',//文件大小2Mexts: 'png|gif|jpg|jpeg|zip|rar',//文件扩展名done: function (res) {if (res.code == 0) {$("#imgPhoto").attr("src", res.src);$("#uploadList").append("<tr><td>" + res.filename + "</td><td><a target='_blank' href='" + res.src + "'>查看</a></td><tr>");}}});});
</script>
</body>
</html>

控制器代码(UploadController.cs)

 // 上传视图public ActionResult Upload()
{return View();}// 上传逻辑
public JsonResult UploadFile(){UploadFile uploadFile = new UploadFile();try{var file = Request.Files[0];    //获取选中文件var filecombin = file.FileName.Split('.');if (file == null || string.IsNullOrEmpty(file.FileName) || file.ContentLength == 0 ||filecombin.Length < 2){uploadFile.code = -1;uploadFile.src = "";uploadFile.msg = "上传失败!请检查文件";return Json(uploadFile, JsonRequestBehavior.AllowGet);}//定义本地路径位置string localPath = Server.MapPath("~/Upload");string filePathName = string.Empty; //最终文件名string dateStr = DateTime.Now.ToString("yyyyMMddHHmmss");filePathName = dateStr + "." + filecombin[1];//Upload不存在则创建文件夹if (!System.IO.Directory.Exists(localPath)){System.IO.Directory.CreateDirectory(localPath);}//保存图片file.SaveAs(Path.Combine(localPath, filePathName));uploadFile.code = 0;uploadFile.filename = filecombin[1];uploadFile.src = Path.Combine("/Upload/",filePathName);uploadFile.msg = "上传成功";return Json(uploadFile, JsonRequestBehavior.AllowGet);}catch (Exception){uploadFile.code = -1;uploadFile.src = "";uploadFile.msg = "上传失败!";return Json(uploadFile, JsonRequestBehavior.AllowGet);}}

IT技术分享社区

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux arp 防火墙关闭,如何关闭ARP防火墙

360安全卫士和QQ电脑管家都提供了ARP防火墙&#xff0c;但该功能对于家庭用户没有任何意义.那么该如何关闭它呢?下面是学习啦小编收集整理的如何关闭ARP防火墙&#xff0c;希望对大家有帮助~~关闭ARP防火墙的方法工具/原料360安全卫士QQ电脑管家如何关闭360安全卫士的ARP防火墙…

复习知识点:UITableView和UICollectionView的常用属性

UITableView UICollectionView //UICollectionViewLayout //UICollectionViewLayout决定了UICollectionView如何显示在界面上&#xff0c;Apple提供了一个最简单的默认layout对象&#xff1a;UICollectionViewFlowLayout。 //Flow Layout是一个Cells的线性布局方案&#xff0c;…

ASP.NET+MVC+使用+Log4net+记录日志笔记

前言&#xff1a;记录系统中的日志&#xff0c;是一个好的项目产品必备的一个环节。每一个产品最终的目的都是要交予客户使用&#xff0c;因为程序员代码的开发水平参差不齐&#xff0c;Bug就成为了项目运维成本最大的因素之一。如何降低项目运维的成本呢&#xff0c;最重要的是…

数据库:SQLServer中with as 用法笔记

一、with as 概念介绍with as 也叫做子查询部分&#xff08;subquery factoring&#xff09;&#xff0c;可以定义一个SQL段落&#xff0c;该SQL段落可以被整个SQL语句所用到类似于临时表的作用。with as 可以提高你的SQL语句的可读性&#xff0c;也有可以用在在UNION ALL的不同…

数据库优化:SqlServer的with(nolock)关键字的用法介绍

一、with(nolock)的介绍数据库写查询语句的时候,为了提升查询性能,往往会在查询的表后面加一个nolock,或者是with(nolock),其目的就是查询的时候是不锁定表,从而提高查询速度的目的。但如果同一时间有多个用户访问同一资源的时候&#xff0c;如果并发用户对该资源做了修改。则会…

linux /root /etc,Linux知识:/root/.bashrc与/etc/profile的异同

要搞清bashrc与profile的区别&#xff0c;首先要弄明白什么是交互式shell和非交互式shell&#xff0c;什么是login shell 和non-login shell。交互式模式就是shell等待你的输入&#xff0c;并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是…

java多线程售票例子

代码如下: public class Ticket1 implements Runnable {private int tickets 100;Overridepublic void run() {while (tickets > 0) {synchronized (Ticket.class) {if (tickets > 0) {tickets--;System.out.println(Thread.currentThread().getName() "正在卖票&…

推荐一款免费国产远程办公神器ToDesk,TeamViewer完美替代品

对于从事IT行业的人员来说&#xff0c;远程软件基本上是必备的软件。之前使用用TeamViewer远程办公软件&#xff0c;它的稳定性、延迟低、功能齐全很受广大开发者的欢迎。唯一美中不足的是它是一款商业软件。费用比较高。到现在基本上所有破解工具都无效了。所以不得不放弃这款…

苹果台式电脑怎么开机_龙华苹果电脑回收公司,台式电脑回收公司电话

龙华苹果电脑回收公司,台式电脑回收公司电话oDYIHx 通常液晶显示器有VGA和DVI两种种接口&#xff0c;其中VGA接口在长时间显示后悔出现画面模糊情况&#xff0c;需要校正才能恢复&#xff0c;然而DVi接口传输就比较稳定&#xff0c;它属于全数字无损传输信号&#xff0c;在长…

AtomicInteger使用非阻塞算法,实现并发控制多线程实现售票

代码如下: public class TicketDemo implements Runnable {private static volatile AtomicInteger ticketSum new AtomicInteger(20);private static int finalTotal 0;Overridepublic void run() {int count;while ((count ticketSum.decrementAndGet()) > 0) {System.…

数据库:SQLServer 实现行转列、列转行用法笔记

在许多的互联网项目当中&#xff0c;报表开发是整个项目当中很重要的一个功能模块。其中会有一些比较复杂的报表统计需要行转列或者列转行的需求。今天给大家简单介绍一下在SQLServer当中如何使用PIVOT、UNPIVOT内置函数实现数据报表的行转列、列转行。有需要的朋友可以一起学习…

硬件知识:串口通讯的起始、数据、停止位是怎么分配的?

串口是串行接口&#xff08;serial port&#xff09;的简称&#xff0c;也称为串行通信接口或COM接口。串口通信是指采用串行通信协议&#xff08;serial communication&#xff09;在一条信号线上将数据一个比特一个比特地逐位进行传输的通信模式。串口按电气标准及协议来划分…

ES5 getter setter

最近在学习vuejs&#xff0c;了解到内部实现使用到了es5的Getters和Setters。之前看高程的时候&#xff0c;没有重视这块&#xff0c;今天查看一下文档&#xff0c;了解了他们的作用&#xff0c;再次记录一下&#xff0c;可供以后查看和共享。 定义Getters和Setters&#xff1a…

python 调用bat失败_要想顺利通过Python面试,你最起码需要达到白银段位!

近几年 Python 非常热门&#xff0c;在学术界和产业界的使用率显著提高。目前学习Python的人数日益增多&#xff0c;Python在近3年的编程语言受欢迎度中一直处于榜首。今天我们就来讲讲在产业界&#xff0c;需要具备哪些能力才能获得一个满意的 Python 相关岗位 Offer。Python基…

多线程售票demo,用ReentrantLock实现

代码: public class TicketReentLockDemo implements Runnable {private int ticketTotal 100;private Lock lock new ReentrantLock();Overridepublic void run() {while (ticketTotal > 0) {try {lock.lock();if (ticketTotal > 0) {try {TimeUnit.MILLISECONDS.sle…

数据库:SQLServer中in和 exists函数用法笔记

今天给大家分享一下SQLServer中in和 exists 用法&#xff0c;希望能对大家有所帮助。一、IN 用法确定指定的值是否与子查询或列表中的数据相匹配。1.1 语法格式test_expression [ NOT ] IN ( subquery | expression [ ,...n ] )1.2 参数说明test_expression为任意有…

什么是m叉树_不懂数据库索引的底层原理?那是因为你心里没点b树

前几天下班回到家后正在处理一个白天没解决的bug&#xff0c;厕所突然传来对象的声音&#xff1a; 对象&#xff1a;xx&#xff0c;你有《时间简史》吗&#xff1f; 我&#xff1a;我去&#xff01;妹子&#xff0c;你这啥癖好啊&#xff0c;我有时间也不会去捡屎啊&#xff01…

可重入锁是什么和demo

可重入锁 reentrantlock是独占锁且可重入的 synchronized 也可以重入 可重入意思就是这个线程已经获取锁了&#xff0c;你再获取该锁还能获取 获取的还是原来的锁 不会出现问题 可以降低编程难度 代码如下: new Thread(new Runnable() {Overridepublic void run() {synchr…

linux 安装python 3.x,Linux 安装python3.x步骤

本文转发自博客园非真的文章&#xff0c;内容略有改动linux系统本身默认安装有2.x版本的python&#xff0c;版本x根据不同版本系统有所不同&#xff0c;通过python --V 或 python --version 查看系统自带的python版本。有一些系统命令时需要用到python2&#xff0c;不能卸载&am…

数据库:SQLServer中游标的用法笔记

一、游标的概念知识游标可以理解为SQL Server的一种数据访问机制&#xff0c;它允许用户访问数据的维度是数据行。用户可以对每一行数据进行单独处理&#xff0c;从而降低系统开销和潜在的阻隔情况&#xff0c;游标主要用于存储过程&#xff0c;触发器和 T_SQL复杂的脚本中&…