【发布时间】:2020-09-19 14:40:49
【问题描述】:
我将用户图像保存到我的 wwwroot 文件夹中的一个文件夹中,并将图像路径保存到我的数据库 Razor Pages,现在我想使用图像路径显示相同的图像,但它不起作用。
这是我保存图像的代码
if (Imagefile != null && Imagefile.Length > 0)
{
var imgpath = @"\Upload\pkgimages\";
var uploadpth = _env.WebRootPath + imgpath;
//Create Directory
if (!Directory.Exists(uploadpth))
{
Directory.CreateDirectory(uploadpth);
}
//create file
var uniqueFilename = Guid.NewGuid().ToString();
var filename = Path.GetFileName(uniqueFilename + "." + Imagefile.FileName.Split(".")[1].ToLower());
string fullPath = Path.Combine(uploadpth, filename);
using (var filestream = new FileStream(fullPath, FileMode.Create))
{
Input.ImagePath = fullPath;
await Imagefile.CopyToAsync(filestream);
}
}
var today = DateTime.Now;
var exp = today.AddDays(Input.Duration);
Input.expDate = exp;
var pkg= new UserPackages
{
Title = Input.Title,
BeginDate = DateTime.Now,
ExpDate=Input.expDate,
Status = "Pending",
PackageID = pckID,
UserID = Loginuser,
ImagePath = Input.ImagePath
};
await _userPackageDataService.AddUserPackage(pkg)
它现在将所有内容正确保存到各自的位置,以检索这些详细信息并显示上传的图像
这是我的代码
public async Task OnGetAsync(string ID)
{
Guid _pkgID = Guid.Parse(ID);
var package= await _userPackageDataService.ReviewPackage(_pkgID);
var result= _mapper.Map<packageDTO>(package);
UserPackage= result;
}
然后在我的 chtml 文件中我有这个标记
<div class="col-sm-6">
<img src="@Model.UserPackage.ImagePath" alt="Image" style="width:200px; height:200px;" />
</div>
我也试过
<div class="col-sm-6">
<img src="@Uri.Content(Model.UserPackage.ImagePath)" alt="Image" style="width:200px; height:200px;" />
</div>
它返回希望保存到数据库的完整图像路径,但图像未在浏览器上呈现,请问我在这里遗漏了什么? 谢谢
【问题讨论】:
标签: c# razor-pages asp.net-core-3.0