關于我
我的博客 | 歡迎關注
前言
在進行Web前后端分析開始時,我們經常會碰到檔案上傳的需求,上傳用戶頭像,上傳認證材料、審核材料等,這些都可以歸類為檔案上傳功能,
今天主要把自己在開發程序中的心得進行一個整理,供大家學習,
開啟靜態檔案中間件
默認情況下,靜態檔案(如 HTML、CSS、影像和 JavaScript)是 ASP.NET Core 應用直接提供給客戶端的資產,
開啟靜態檔案訪問,即可以通過瀏覽器地址輸入http://127.0.0.1:8080/images/1.png訪問圖片或其他檔案的方式,需要在中間件中進行配置,
StartUp.cs中Configure方法增加一行代碼,即添加默認的靜態檔案中間件,
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseStaticFiles();
}
詳情參考官方檔案:
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/static-files?view=aspnetcore-3.1
檔案上傳功能
前后臺分離專案,所以創建WebApi專案,新建一個控制器,檔案名FileController,開始進行一個簡單的檔案上傳編碼,
public class FileController : ControllerBase
{
private static IWebHostEnvironment _webHostingEnvironment;
public FileController(IWebHostEnvironment hostingEnvironment)
{
_webHostingEnvironment = hostingEnvironment;
}
public IActionResult UploadFile(IFormFile formFile)
{
//var formFile = Request.Form.Files[0];//獲取請求發送過來的檔案
var webRootPath = _webHostingEnvironment.WebRootPath;//應用程式根目錄
string dirPath = webRootPath + "/UploadFile/" + DateTime.Now.ToString("yyyyMMdd");
//判斷保存的檔案夾是否存在,不存在創建
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
if (formFile == null)
{
//保存的檔案名稱可能存在重復,所以需要在后臺對檔案進行重命名
string fileExtesion = Path.GetExtension(formFile.FileName);
string fileName = Path.GetFileName(formFile.FileName) + "_" + Guid.NewGuid().ToString() + "." + fileExtesion;
//保存檔案
using (var fs = System.IO.File.Create(webRootPath + "/" + fileName))
{
formFile.CopyTo(fs);
}
return new JsonResult(new { success = true, errMsg = "檔案上傳成功" });
}
else
{
return new JsonResult(new { success = false, errMsg = "未檢測到上傳的檔案" });
}
}
}
參考
ASP.NET Core單檔案和多檔案上傳并保存到服務端
The END
本文到此結束,希望對你有幫助 ??
更多精彩 技術文章匯總在我的 公眾號程式員工具集 ,持續更新,歡迎關注訂閱收藏,
如果還有什么疑問或者建議,可以多多交流,原創文章,文筆有限,才疏學淺,文中若有不正之處,萬望告知,
福利姬
公眾號后臺回復:“關注禮包”,獲取價值5K的視頻學習資源
公眾號后臺回復:“技能圖譜”,送你一份最全的開發者技能圖譜
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/285360.html
標籤:.NET Core
上一篇:.Net 中兩分鐘集成敏感詞組件
