您可以使用IFormFile保存从视图发布的图像。以下是示例代码。
public class UserProfileViewModel
{
public string UserName { get; set; }
public IFormFile UploadedImage { get; set; }
public string ImageUrl { get; set; }
}
鉴于只需用IFormFile属性绑定它像:
<img src="@Model.ImageUrl" alt="User Logo" asp-append-version="true" />
<input type="file" asp-for="UploadedImage" />
在你的控制器,你只需要保存文件,像服务器:
var filename = ContentDispositionHeaderValue
.Parse(user.UploadedImage.ContentDisposition)
.FileName
.Trim('"');
filename = Path.Combine(webRoot, "/Content/UserProfile/", [email protected]"\{filename}");
if (Directory.Exists(webRoot + "/Content/UserProfile/"))
{
using (FileStream fs = System.IO.File.Create(filename))
{
user.UploadedImage.CopyTo(fs);
fs.Flush();
}
}
model.ImageURL = "~/Content/Brands/" + user.UploadedImage.FileName;
将文件保存到数据库并不是一个好主意,您的数据库可能会变得很快,这使备份和恢复成为问题。 –