前几天看到网上有很多复杂的实现方式,觉得没必要,所以就写个简单的实现。

一:首先来看看Api Controller里面的代码:

HttpContext.Current.Request.Files  这是一个文件集合对象,你客户端上载的所有文件都在这个集合当中

图中提供了2种方式获取单个文件对象,你可以按需使用,单个文件可以直接用下标,多个文件用name,例如:

HttpPostedFile file =HttpContext.Current.Request.Files[0];

图中HttpPostedFile 对象提供的属性和对象够满足你对文件操作的所有需求,例如:

1.通过FileName的扩展名判断是否非法文件或者允许上传的文件类型

2.利用ContentLength 控制上传文件的大小限制

3.InputStream对象可以转换为byte[]数组 上传OSS等操作

附上完整代码如下:

 var file = HttpContext.Current.Request.Files[];  //获取文件对象
string fileName = file.FileName; //原文件名
string fileExt = fileName.Substring(fileName.LastIndexOf("."));//获取扩展名
//检测上传文件是否合法
if (!FileHelper.CheckFileExt(fileExt))
{
throw new AppInvalidException("请选择合法的文件进行上传!");
}
string newFileName= DateTime.Now.ToString("yyyyMMddHHmmssffff") + fileExt; //随机生成新的文件名
string path = Path.Combine(Server.MapPath("~/UploadFile"), newFileName); //生成新的文件路径
file.SaveAs(path); //保存文件

需要增加大小限制什么的,就自己添加了。

二:再看下View的代码:

红圈中需要注意以下几点:

1.必须设置 enctype="multipart/form-data"

2.用的是file文件控件

3.必须要用form post 提交

OK,有说的不明白的地方就请留言吧!!下班了。。回家撸猫

aps.net mvc webapi 实现文件或图片上传的更多相关文章

  1. 使用localResizeIMG3+WebAPI实现手机端图片上传

    前言 惯例~惯例~昨天发表的使用OWIN作为WebAPI的宿主..嗯..有很多人问..是不是缺少了什么 - - 好吧,如果你要把OWIN寄宿在其他的地方...代码如下: namespace Conso ...

  2. spring mvc:ueditor跨域多图片上传失败解决方案

    公司在开发一个后台系统时需要使用百度的UEditor富文本编辑器,应用的场景如下: UEditor的所有图片.js等静态资源在一个专有的静态服务器上: 图片上传在另外一台服务器上: 因为公司内部会使用 ...

  3. Asp.Net MVC 文件管理Demo(文件展示,上传,下载,压缩,文件重命名等)

    之前 ,有想做一个文件管理页面. 参考了 许多资料,终于完成了一个基于Asp.net MVC 的文件管理Demo.界面如下.   一,实现功能及相关技术 文件管理Demo基于Asp.NET MVC , ...

  4. Retrofit 2.0 超能实践(三),轻松实现文件/多图片上传/Json字符串

    文:http://blog.csdn.net/sk719887916/article/details/51755427 Tamic 简书&csdn同步 通过前两篇姿势的入门 Retrofit ...

  5. 链接ftp,把文件或图片上传到ftp指定的文件夹中

    /******************************************************************** *  * * Filename : .java * Auth ...

  6. FileReader()读取文件、图片上传预览

    前言 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据. 其中File对象可以是来自用户 ...

  7. (文件)图片上传,Spring或SpringMVC框架

    spring或springMVC框架图片(文件)上传 页面部分,用一个简单的form表单提交文件,将图片或文件提交到服务端.一个输入框,用于输入图片的最终名称,一个file文件选择,用于选择图片. 页 ...

  8. ifram+form方式实现文件、图片上传、预览

    1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  9. ASP.NET MVC+Easyui 后台管理系统的图片上传

    实现图片的上传 easyui代码部分: //添加按钮 var URL; $("#btnCreate").click(function () { $('#UserDialog').d ...

随机推荐

  1. WPF 手机验证码 发送按钮倒计时 代码

    private async void SendButton_Click(object sender, RoutedEventArgs e) { var button = sender as Butto ...

  2. 快速 图片颜色转换迁移 Color Transfer Opencv + Python

      Super fast color transfer between images About a month ago, I spent a morning down at the beach, w ...

  3. CSS 小结笔记之定位

    定位也是Css中一个非常强大的属性.定位主要是用来移动盒子,将其移动到我们想要的位置. 定位分为两部分 1.边偏移 left | right |top |bottom:偏移大小:(边偏移一般制定上就不 ...

  4. leetCode题解之寻找string中最后一个word的长度

    1.题目描述 返回一个 string中最后一个单词的长度.单词定义为没有空格的连续的字符,比如 ‘a’,'akkk'. 2.问题分析 从后向前扫描,如果string是以空格‘  ’结尾的,就不用计数, ...

  5. logback总结

    Logback Logback由三大模块组成:logback-core.logback- classic和logback-access. Logback-core是其它两个模块的基础模块. Logba ...

  6. Excel连接字符串在.NET中的应用

    转:https://www.cnblogs.com/jaxu/archive/2011/07/29/2121022.html 介绍几种在.NET中直接连接Excel作为数据源的几种方法以及连接字符串的 ...

  7. Oracle EBS 系统仅存在英文的环境

    系统管理员 应用服务器 adadmin 编译

  8. 【Redis】命令学习笔记——字符串(String)(23个超全字典版)

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 本篇基于redis 4.0.11版本,学习字符串( ...

  9. SQL SERVER中的And与Or的优先级

    数据库中有城市库表,其中有国家.省.城市. 举例:在广东省内(包含广东省本身),找出名称为“广州”的记录 首先,广东省内的条件是:ParentId = 2 Or Id =2 名称为“广州”的条件是:N ...

  10. [翻译] SACalendar

    SACalendar 效果图: Introducing SACalendar - Easy to use and customizable iOS 7 Calendar SACalendar - 使用 ...