aps.net mvc webapi 实现文件或图片上传
前几天看到网上有很多复杂的实现方式,觉得没必要,所以就写个简单的实现。
一:首先来看看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 实现文件或图片上传的更多相关文章
- 使用localResizeIMG3+WebAPI实现手机端图片上传
前言 惯例~惯例~昨天发表的使用OWIN作为WebAPI的宿主..嗯..有很多人问..是不是缺少了什么 - - 好吧,如果你要把OWIN寄宿在其他的地方...代码如下: namespace Conso ...
- spring mvc:ueditor跨域多图片上传失败解决方案
公司在开发一个后台系统时需要使用百度的UEditor富文本编辑器,应用的场景如下: UEditor的所有图片.js等静态资源在一个专有的静态服务器上: 图片上传在另外一台服务器上: 因为公司内部会使用 ...
- Asp.Net MVC 文件管理Demo(文件展示,上传,下载,压缩,文件重命名等)
之前 ,有想做一个文件管理页面. 参考了 许多资料,终于完成了一个基于Asp.net MVC 的文件管理Demo.界面如下. 一,实现功能及相关技术 文件管理Demo基于Asp.NET MVC , ...
- Retrofit 2.0 超能实践(三),轻松实现文件/多图片上传/Json字符串
文:http://blog.csdn.net/sk719887916/article/details/51755427 Tamic 简书&csdn同步 通过前两篇姿势的入门 Retrofit ...
- 链接ftp,把文件或图片上传到ftp指定的文件夹中
/******************************************************************** * * * Filename : .java * Auth ...
- FileReader()读取文件、图片上传预览
前言 FileReader 对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据. 其中File对象可以是来自用户 ...
- (文件)图片上传,Spring或SpringMVC框架
spring或springMVC框架图片(文件)上传 页面部分,用一个简单的form表单提交文件,将图片或文件提交到服务端.一个输入框,用于输入图片的最终名称,一个file文件选择,用于选择图片. 页 ...
- ifram+form方式实现文件、图片上传、预览
1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- ASP.NET MVC+Easyui 后台管理系统的图片上传
实现图片的上传 easyui代码部分: //添加按钮 var URL; $("#btnCreate").click(function () { $('#UserDialog').d ...
随机推荐
- solidity 语法学习
基于 cryptozombies.io ZombieFactory pragma solidity ^0.4.19; contract ZombieFactory { // 事件, web3.js 可 ...
- web项目启动时,自动执行代码的几种方式
在项目开发过程中,往往需要一些功能随着项目启动而优先启动,下面我总结几种方式(非spring boot) spring boot的参考 spring boot 学习之路9 (项目启动后就执行特定方法) ...
- cmake 基本命令
1 # CMake 最低版本号要求cmake_minimum_required (VERSION 2.8) 2 项目信息project (Demo2) 3 aux_source_directory 查 ...
- CCSUOJ评测系统
队名: BUGG 团队信息与分工: 开发: 周斌 B20150304221 舒 溢 B20150304209 测试: 许嘉荣 B20150304213 唐 浩 B20150304316 Product ...
- Chrome 插件推荐
我在这里就是抛砖引玉,各位开发者,有更好的插件请不要吝啬,分享出来. 希望世界和平! 翻译类 沙拉查词 目前使用,感觉挺好的,各种词典,还有统计.划词划句都可以翻译出来. JSON 格式转换 JSON ...
- Android组件系列----Activity的生命周期
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- mysql执行计划常用说明
MYSQL执行计划顺序原则上是:在所有组中,id值越大,优先级越高,越先执行,id如果相同,可以认为是一组,从上往下顺序执行做执行计划之前,要了解下表统计信息情况:mysql.innodb_table ...
- 打印pdf
#include "pdf_print_helper.h" pdf_print_helper::pdf_print_helper(){ } pdf_print_helper::~p ...
- 遇见C++ Lambda
转自:https://www.cnblogs.com/allenlooplee/archive/2012/07/03/2574119.html 遇见C++ Lambda Written by Alle ...
- php 实现八皇后问题
php实现的八皇后问题,可以推广到N皇后 <?php class Empress{ private $queen;//存储位置,例如$queen[2] = 3表示第三行的第四列位置,行列从0计数 ...