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等操作

附上完整代码如下:

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

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

二:再看下View的代码:

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

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

2.用的是file文件控件

3.必须要用form post 提交

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

原文地址:https://www.cnblogs.com/wuzhixiong/p/10342848.html

时间: 2024-08-27 18:33:09

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

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

/******************************************************************** *  * * Filename : .java * Author :  * Date : 2015年6月5日 * Version : V1.00 * Description : * * History : Modify Id | Date | Origin | Description *************************************

layui实现文件或图片上传记录

首先是layui自己的官网关于图片/文件上传的帮助文档:https://www.layui.com/doc/modules/upload.html 接下来是我自己的使用记录: 1.首先在js中定义一个全局变量 var uploadListIns; 2.进行赋值 //多文件列表示例 /** * 图片上传 */ layui.use('upload', function(){ var $ = layui.jquery,upload = layui.upload; var demoListView =

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

1.前端代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .btn{ display: inline-block; padding: 5px 10px; background-color: coral; color: white; } </

单个文件或图片上传(java)

public void uploadFile(){ UploadFile file = getFile("batfile", "images"); File source = file.getFile(); String fileName = file.getFileName(); String extension = fileName.substring(fileName.lastIndexOf(".")); String prefix; if

js文件、图片上传(原生方法和jquery的ajax两种都有)

<!DOCTYPE html><html> <head> <title>test</title> </head> <body> <input type="file" id="fileUpload"> <button id="submit">点击上传文件</button> <script src="javascri

MVC 中接受Flash的图片上传

/// <summary> /// 通过Flash上传图片 /// </summary> /// <param name="uid"></param> /// <param name="jid"></param> /// <param name="sn"></param> /// <returns></returns> [Htt

WebApi2 文件图片上传下载

Asp.Net Framework webapi2 文件上传与下载 前端界面采用Ajax的方式执行 一.项目结构 1.App_Start配置了跨域访问,以免请求时候因跨域问题不能提交.具体的跨域配置方式如下,了解的朋友请自行略过. 跨域配置:NewGet安装dll Microsofg.AspNet.Cors 然后在App_Start 文件夹下的WebApiConfig.cs中写入跨域配置代码. 1 public static class WebApiConfig 2 { 3 public sta

PHP 图片上传工具类(支持多文件上传)

====================ImageUploadTool======================== <?php class ImageUploadTool { private $file; //文件信息 private $fileList; //文件列表 private $inputName; //标签名称 private $uploadPath; //上传路径 private $fileMaxSize; //最大尺寸 private $uploadFiles; //上传文件

服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上传(含服务器,web版和android客户端完整代码)

问题背景:app在上传图片时,同时传递参数,支持传递多个图片.本文中的环境默认已经配好了服务器的CodeIgniter框架.事实上不使用这个框架也是可以的. 一,服务器部分 1,在controllers下的helpers新建文件upload_helper.php <?php /** * Make multifile array input complaint with CI_Upload.<br> * For use files[ ] input name you must use it