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,有說的不明白的地方就請留言吧!!下班了。。回家擼貓


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM