.Net-C#文件上传的常用几种方式

1.第一种上传方式,基本通用于.net所有的框架

        [HttpPost]
        [Route("Common/uploadFile1")]
        public string uploads()
        {
            HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
            HttpRequestBase request = context.Request;//定义传统request对象
            HttpFileCollectionBase files = request.Files;
            string fileSuffix = Path.GetExtension(files[0].FileName).ToLower();
            string fileId = Guid.NewGuid().ToString();
            string dateKey = DateTime.Now.ToString("yyyyMMdd");
            string savaPath, uri;     
            uri = @"/fileData/rest/" + dateKey + @"/";
            savaPath = request.MapPath(uri);
            if (!Directory.Exists(savaPath))
            {
                Directory.CreateDirectory(savaPath);
            }
            try
            {
                files[0].SaveAs(savaPath + fileId + fileSuffix);
                return uri + fileId + fileSuffix;
            }catch (Exception ex){
                return ex.Message;
            }
        }

2.WebAPI可以用这个来,但是在低一点的版本没有IFormFile 这个对象

        /// <summary>
        /// 通用文件上传接口
        /// </summary>
        /// <param name="file"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("Common/uploadFile2")]
        public  async Task<string>  upload(IFormFile file)
        {
            string fileSuffix = Path.GetExtension(file.FileName).ToLower();
            string fileId = Guid.NewGuid().ToString();
            string dateKey = DateTime.Now.ToString("yyyyMMdd");
            string savaPath,uri;
            uri = @"/fileData/rest/"  + dateKey  + @"/";
            savaPath =  Path.Combine(Directory.GetCurrentDirectory(), uri);
            if (!Directory.Exists(savaPath)){Directory.CreateDirectory(savaPath);}
            //创建特定名称的文件流
            await using var stream = new FileStream(savaPath + fileId + fileSuffix, FileMode.Create);
            try
            {
                //上传文件
                await file.CopyToAsync(stream);
                stream.Flush();
                return uri + fileId + fileSuffix;
            } catch (Exception ex)  {
                //上传异常处理 
                return ex.Message;
            }

 

3.上传方式,可以用于.netCore MVC方式的文件上传

        [HttpPost]
        public JsonResult uploadX(HttpPostedFileBase file)
        {
            String suffix = file.FileName.Substring(file.FileName.LastIndexOf(".", StringComparison.Ordinal));
            string fileName = Guid.NewGuid().ToString().Replace("-", "") + suffix;
            string uri = string.Format("{0}/{1}/{2}/", "fileData", "rest", DateTime.Now.Year+""+DateTime.Now.Month +""+ DateTime.Now.Day);
            string filePath = Server.MapPath(string.Format("~/{0}",uri));
            if (!Directory.Exists(filePath))
            {
                Directory.CreateDirectory(filePath);
            }
            file.SaveAs(Path.Combine(filePath, fileName));
            return Json(uri + fileName);
        }
注:以上就是三种文件上传的方式,可以采用第一种方式,兼容性好
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET学习大全,包括以下文档: GridView导出excel 小山的TreeView数据绑定方法 ADO.NET在开发中的部分使用方法和技巧.txt ADO.NET中的视图和过滤器.doc ASP .NET - ArrayList对象.txt asp.net 2.0中TREEVIEW中动态增加结点.txt Asp.net 实现验证码功能的Web控件.txt asp.net常用的javascript经典例子.doc asp.net常用函数表.doc ASP.NET程序中常用的三十三种代码.doc ASP.NET程序中实现校验码图像生成.txt ASP.NET导出EXCEL类.txt ASP.NET导出数据到Excel.txt ASP.NET对IIS中的虚拟目录进行操作.txt asp.net里导出excel表方法汇总.txt ASP.NET文件上传程序的源代码.txt Asp.Net中文本换行.txt ASPNET中实现在线用户检测(使用后台守护线程).txt C# 读取计算机CPU,HDD信息.txt DataGrid导出EXCEL的几个方法(WebControl).txt DataGrid的打印预览和打印.txt GridView排序.txt GRID控件删除之前确认.txt javascript小技巧.doc MVC在Web系统中的模式与应用.doc NET中各种数据库连接大全.doc Treeview控件2.0与ACCESS数据库.txt TreeView使用集锦.txt Web Service服务.doc WEB中实现打印预览.txt 根据用户名生成注册码的算法.txt 关于asp.net导出Excel.txt 汉字转拼音缩写.txt 将DataGrid数据写入Excel文件.txt 揭开ASP.NET中Cookie编程的奥秘.txt 利用TreeView控件动态生成无限级树.txt 实现一个Asp.net自定义Back控件.txt 使用XML创建Excel文档.txt 鼠标停留在GridView某一行时颜色改变.txt 微软提供的加密方法.txt 无法破解的软件注册码算法.txt 用Asp.net实现简单的文字水印.txt 用ASP.Net写一个发送ICQ信息的程序.txt 在ASP.NET中使用Treeview控件和XML.txt
上篇 ASP.NET应用与开发基础 第1章 ASP.NET概论 1.1 ASP.NET简介 1.1.1 从.NET谈起 1.1.2 动态网站设计技术 1.1.3 ASP.NET的介绍 1.1.4 ASP.NET和ASP的对比 1.2 运行环境配置 1.2.1 ASP.NET运行环境介绍 1.2.2 lis的安装和配置 1.2.3 安装Microsoft.NET Framework SDK 1.2.4 Visual Studio.NET的简介 1.3 从HelloWorld开始 1.3.1 用HTML编写的Hello World程序 1.3.2 用C#编写的Hello World程序 1.4 小结 1.5 习题 第2章 ASP.NET语言基础 2.1 C#言简介 2.2 一个简单的程序 .2.3 C#中的数据类型 2.3.1 整型 2.3.2 浮点型 2.3.3 布尔型 2.3.4 字符型 2.3.5 预定义引用类型 2.4 C#中的变量和常量 2.4.1 变量声明和赋值 2.4.2 定义常量 2.4.3 枚举类型 2.5 C#中的操作符与表达式 2.5.1 赋值运算符 2.5.2 算术运算符 2.5.3 比较运算符 2.5.4 布尔逻辑运算符 2.5.5 位运算符 2.6 C#中的控制语句 2.6.1 选择语句 2.6.2 循环语句 2.7 C#中的类机制简介 2.8 小结 2.9 习题 第3章 Web Form 3.1 Web Form概述 3.1.1 什么是Web Form 3.1.2 Web Form的组成 3.1.3 第一个Web Form程序 3.1.4 让Web Form支持中文 3.2 Web Form语法知识 3.2.1 aspx文件的构成 3.2.2 服务器控件(Server Controls) 3.2.3 Web Form的Code-Behind代码组织方式 3.3 Web Form页面处理 3.3.1 页面处理内部过程 3.3.2 页面的一次往返处理 3.3.3 页面重建 3.4 声明和使用服务器控件 3.4.1 声明服务器控件 3.4.2 响应服务器控件 3.5 小结 3.6 习题 第4章 服务器控件 4.1 常用的HTML控件 4.1.1 表单控件 4.1.2 表格控件 4.1.3 其他控件 4.2 Web控件 4.2.1 Label控件 4.2.2 Button控件 4.2.3 CheckBox和CheckBoxList控件 4.2.4 RadioButton和RadioButtonList控件 4.2.5 Image控件和ImageButton控件 4.2.6 HyperLink和LinkButton控件 4.2.7 DropDownList和ListBox控件 4.2.8 Panel控件 4.2.9 TextBox控件 4.2.10 Table控件、TableRow控件及TableCel!控件 4.2.11 高级控件 4.3 验证控件 4.3.1 验证控件概述 4.3.2 验证控件的类型 4.3.3 验证技术的综合应用 4.4 用户控件 4.4.1 用户控件概述 4.4.2 用户控件中定义属性 4.4.3 用户控件中的事件处理 4.4.4 从Web Form页面到用户控件 4.5 小结 4.6 习题 中篇 ASP.NET应用与开发的核心内容 第5章 AD0.NET数据库连接 5.1 ADO.NET基本概念 5.1.1 ADO.NET对象模型 5.1.2 ADO.NET对比ADO 5.2 ADO.NET数据库连接概述 5.3 使用Connection对象 5.4 使用Command和DataReader对象 5.4.1 Command对象 5.4.2 DataReader对象 5.4.3 使用Command对象实现存储过程访问 5.5 使用DataSet对象 5.5.1 DataTableCollection对象 5.5.2 DataRelationCollection对象 5.5.3 ExtendedProperties对象 5.5.4 使用DataSet对象获取数据 5.5.5 使用DataSet 5.5.6 使用DataTable 5.6 使用DataAdapter对象 5.7 小结 5.8 习题 第6章 ADO.NET数据管理与数据控件 6.1 SQL操作 6.1.1 数据查询 6.1.2 数据更新 6.2 数据绑定技术 6.3 DmaGdd控件 6.3.1 在DataGfid中显示数据 6.3.2 为DataGrid添加多功能列 6.4 Repeater控件 6.5 DataList控件 6.6 小结 6.7 习题 第7章 跟踪调试ASP,NET程序 7.1 错误的种类 7.2 跟踪ASP.NET程序 7.2.1 页面级的跟踪 7.2.2 应用程序级的跟踪 7.3 调试ASP.NET程序 7.3.1 调试ASP.NET程序 7.3.2 设置断点 7.4 小结 7.5 习题 第8章 ASP.NET应用程序 8.1 什么是应用程序 8.2 ASP.NET配置文件概述 8.2.1 什么是配置文件 8.2.2 ASP.NET程序配置文件格式 8.2.3 配置文件的内容格式 8.3 ASP.NET应用程序中的用户状态管理 8.3.1 Global.asax文件概述 8.3.2 Application对象事件 8.3.3 Session对象事件 8.3.4 其他几种客户端的用户状态管理方法 8.3.5 本小节提示 8.4 ASP.NETHTFP运行情况 8.4.1 HTFP运行情况介绍 8.4.2 HTFP处理程序 8.5 小结 8.6 习题 第9章 ASP.NET与XML 9.1 XML简介 9.1.1 什么是标记语言 9.1.2 HTML的弊病 9.1.3 什么是XML 9.2 XML基本语法 9.2.1 语法的基本要求和概念 9.2.2 文件 9.2.3 XML文件的逻辑结构 9.2.4 XML文件的物理结构 9.3 操作XML 9.3.1 XML控件 9.3.2 XmlTextReader 9.3.3 XmlTextWriter 9.3.4 XML DOM 9.3.5 XmlDataDOcument 9.3.6 DataSet 9.4 小结 9.5 习题 第10章 web service 10.1 Web Service简介 10.2 一个简单的Web Service程序 10.3 Web Service支持的数据类型 10.4 建立Web Service 10.5 使用Web Service 10.6 使用Session和Application对象 10.7 小结 10.8 习题 下篇 ASP.NET在实际中的应用与YF发 第11章 留言板的实现 11.1 系统功能及结构描述 11.2 数据库的实现 11.3 各功能模块的具体实现 11.4 小结 11.5 习题 第12章 网上书店开发实例 12.1 网上书店的系统设计 12.2 网上书店的数据库设计 12.3 网上书店的实现 12.3.1 实现用户登录 12.3.2 实现用户注册 12.3.3 实现分类浏览 12.3.4 实现按名搜索 12.3.5 查看图书介绍 12.3.6 购物车及购买 12.3.7 客户订单管理 12.3.8 新书入库 12.3.9 封面上载 12.3.10 库存管理 12.4 小结
上篇ASP.NET应用与开发基础 第1章ASP.NET概论 1.1ASP.NET简介 1.1.1从.NET谈起 1.1.2动态网站设计技术 1.1.3ASP.NET的介绍 1.1.4ASP.NET和ASP的对比 1.2运行环境配置 1.2.1ASP.NET运行环境介绍 1.2.21lS的安装和配置 1.2.3安装Microsoft.NETFrameworkSDK 1.2.4VisualStudio.NET的简介 1.3从HelloWorld开始 1.3.1用HTML编写的HelloWorld程序 1.3.2用C#编写的HelloWorld程序 1.4小结 1.5习题 第2章ASP.NET语言基础 2.1C#语言简介 2.2一个简单的程序 2.3C#中的数据类型 2.3.1整型 2.3.2浮点型 2.3.3布尔型 2.3.4字符型 2.3.5预定义引用类型 2.4C#中的变量和常量 2.4.1变量声明和赋值 2.4.2定义常量 2.4.3枚举类型 2.5C#中的操作符与表达式 2.5.1赋值运算符 2.5.2算术运算符 2.5.3比较运算符 2.5.4布尔逻辑运算符 2.5.5位运算符 2.6C#中的控制语句 2.6.1选择语句 2.6.2循环语句 2.7C#中的类机制简介 2.8小结 2.9习题 第3章WebForm 3.1WebForm概述 3.1.1什么是WebForm 3.1.2WebForm的组成 3.1.3第一个WebForm程序 3.1.4让WebForm支持中文 3.2WebForm语法知识 3.2.1aspx文件的构成 3.2.2服务器控件(ServerControls) 3.2.3WebForm的Code-Behind代码组织方式 3.3WebForm页面处理 3.3.1页面处理内部过程 3.3.2页面的一次往返处理 3.3.3页面重建 3.4声明和使用服务器控件 3.4.1声明服务器控件 3.4.2响应服务器控件 3.5小结 3.6习题 第4章服务器控件 4.1常用的HTML控件 4.1.1表单控件 4.1.2表格控件 4.1.3其他控件 4.2Web控件 4.2.1Label控件 4.2.2Button控件 4.2.3CheckBox和CheckBoxList控件 4.2.4RadioButton和RadioButtonList控件 4.2.51mage控件和ImageButton控件 4.2.6HyperLink和LinkButton控件 4.2.7DropDownList和ListBox控件 4.2.8Panel控件 4.2.9TextBox控件 4.2.10Table控件、TableRow控件及TableCell控件 4.2.11高级控件 4.3验证控件 4.3.1验证控件概述 4.3.2验证控件的类型 4.3.3验证技术的综合应用 4.4用户控件 4.4.1用户控件概述 4.4.2用户控件中定义属性 4.4.3用户控件中的事件处理 4.4.4从WebForm页面到用户控件 4.5小结 4.6习题 中篇ASP.NET应用与开发的核心内容 第5章AD0.NET数据库连接 5.1ADO.NET基本概念 5.1.1ADO.NET对象模型 5.1.2ADO.NET对比ADO 5.2ADO.NET数据库连接概述 5.3使用Connection对象 5.4使用Command和DataReader对象 5.4.1Command对象 5.4.2DataReader对象 5.4.3使用Command对象实现存储过程访问 5.5使用DataSet对象 5.5.1DataTableCollection对象 5.5.2DataRelationCollection对象 5.5.3ExtendedProperties对象 5.5.4使用DataSet对象获取数据 5.5.5使用DataSet 5.5.6使用DataTable 5.6使用DataAdapter对象 5.7小结 5.8习题 第6章AD0.NET数据管理与数据控件 6.1SQL操作 6.1.1数据查询 6.1.2数据更新 6.2数据绑定技术 6.3DataGrid控件 6.3.1在DataGrid中显示数据 6.3.2为DataGrid添加多功能列 6.4Repeater控件 6.5DataList控件 6.6小结 6.7习题 第7章跟踪调试ASP.NET程序 7.1错误的种类 7.2跟踪ASP.NET程序 7.2.1页面级的跟踪 7.2.2应用程序级的跟踪 7.3调试ASP.NET程序 7.3.1调试ASP.NET程序 7.3.2设置断点 7.4小结 7.5习题 第8章ASP.NET应用程序 8.1什么是应用程序 8.2ASP.NET配置文件概述 8.2.1什么是配置文件 8.2.2ASP.NET程序配置文件格式 8.2.3配置文件的内容格式 8.3ASP.NET应用程序中的用户状态管理 8.3.1Global.asax文件概述 8.3.2Application对象事件 8.3.3Session对象事件 8.3.4其他几种客户端的用户状态管理方法 8.3.5本小节提示 8.4ASP.NETHTFP运行情况 8.4.1HTYP运行‘晴况介绍 8.4.2HTFP处理程序 8.5小结 8.6习题 第9章ASP.NET与XML 9.1XML简介 9.1.1什么是标记语言 9.1.2HTML的弊病 9.1.3什么是XML 9.2XML基本语法 9.2.1语法的基本要求和概念 9.2.2文件 9.2.3XML文件的逻辑结构 9.2.4XML文件的物理结构 9.3操作XML 9.3.1XML控件 9.3.2XmlTextReader. 9.3.3XmlTextWriter 9.3.4XMLDOM 9.3.5XmlDataDocument 9.3.6DataSet 9.4小结 9.5习题 第10章WebSeMce 10.1WebService简介 10.2一个简单的WebService程序 10.3WebService支持的数据类型 10.4建立WebService 10.5使用WebService 10.6使用Session和Application对象 10.7小结 10.8习题 下篇ASP.NET在实际中的应用与开发 第11章留言板的实现 11.1系统功能及结构描述 11.2数据库的实现 11.3各功能模块的具体实现 11.4小结 11.5习题 第12章网上书店开发实例 12.1网上书店的系统设计 12.2网上书店的数据库设计 12.3网上书店的实现 12.3.1实现用户登录 12.3.2实现用户注册 12.3.3实现分类浏览 12.3.4实现按名搜索 12.3.5查看图书介绍 12.3.6购物车及购买 12.3.7客户订单管理 12.3.8新书入库 12.3.9封面上载 12.3.10库存管理 12.4小结

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值