今天闲来无事,复习复习
1、上传
上传界面
<div class="text-center"><h1 class="display-4">Welcome</h1><form method="post" enctype="multipart/form-data" asp-controller="Home" asp-action="UpImage" class="form"><div class="form-group"><input type="file" name="formFile" /><input type="submit" value="上传" class="btn btn-default" /></div></form>
</div>
上传的后台
//文件上传[HttpPost]public IActionResult UpImage(IFormFile formFile)//参数名一定要与前端保持一致{var ex = Path.GetExtension(formFile.FileName);var newFilename = Path.Combine(_webHostEnvironment.WebRootPath, "temp", Guid.NewGuid().ToString().ToUpper().Replace("-", "") + ex);using (FileStream fs = new FileStream(newFilename, FileMode.OpenOrCreate, FileAccess.Write)){formFile.CopyTo(fs);}return Ok("Privacy");}
2、下载
进下载页面前
public IActionResult Privacy()
{var wr = _webHostEnvironment.WebRootPath;var fullPath = Path.Combine(wr, "temp");var oldfiles = Directory.GetFiles(fullPath);var newfile = new string[oldfiles.Length];for (int i = 0; i < oldfiles.Length; i++){newfile[i] = oldfiles[i].Replace(wr, "").Replace("//", "/").Replace("\\", "/");}return View("Privacy", newfile);
}
下载页的前端
@model string[]
<h1>MVC文件上传下载</h1><div class="container"><div class="row">@for (int i = 0; i < Model.Length; i++){<div class="col-sm-4"><img src="@Model[i]" class="img-fluid" style="margin-bottom:10px;"><a class="btn btn-primary btn-lg" asp-controller="Home" asp-action="DownImage" asp-route-filePath="@Model[i]">下 载</a></div>}</div>
</div>
下载页的后端
//文件下载public IActionResult DownImage(string filePath){string contentType = "image/jpeg";var path = _webHostEnvironment.WebRootPath + filePath;FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);return File(fileStream, contentType, DateTime.Now.ToString("F") + ".jpg");}