今天闲来无事,复习复习
1、上传
上传界面
html
<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>
上传的后台
cs
//文件上传
[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、下载
进下载页面前
cs
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);
}
下载页的前端
html
@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>
下载页的后端
cs
//文件下载
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");
}