使用文件路径显示数据库中的图像
本文关键字:图像 数据库 显示 文件 路径 | 更新日期: 2023-09-27 18:35:12
在我成功地将图像路径上传到数据库后,我试图在网格中显示它。在数据库中,我有一个这样的文件路径c:'users'ibn hamza'documents'visual studio 2013'Projects'Blogger'Blogger'Uploads
.
我试图通过这样做显示图像
@foreach (var item in Model)
{
<img src="@item.FilePath" height="127" width="127"/>
}
"
当我构建解决方案时,我得到了一个没有图像但带有占位符的空白页面。我检查了占位符,得到了这条路径<img src="c:'users'ibn hamza'documents'visual studio 2013'Projects'Blogger'Blogger'Uploads'Lagos-20140103-00347.jpg" height="127" width="127">
我单击了路径,但没有显示任何图像。请问我如何正确显示图像。我还将提供控制器和存储图像的操作
public ActionResult SaveUploadedFile(AddMediaVM model)
{
if (ModelState.IsValid)
{
bool isSavedSuccessfully = true;
foreach (string fileName in Request.Files)
{
var newFile = db.Media.Create();
HttpPostedFileBase file = Request.Files[fileName];
var filetype = Path.GetExtension(file.FileName).ToString();
var filename = file.FileName;
var filesize = file.ContentLength;
var contenttype = file.ContentType;
var FilePath = Server.MapPath("/Uploads");
string SavedFileName = Path.Combine(FilePath, filename);
file.SaveAs(SavedFileName);
newFile.FileName = filename;
newFile.FileSize = filesize;
newFile.FileType = filetype;
newFile.ContentType = contenttype;
newFile.FilePath = SavedFileName;
newFile.Description = model.Description;
newFile.Credit = model.Credit;
newFile.DateUploaded = DateTime.Now;
FormsIdentity identity = (FormsIdentity)User.Identity;
int nUserID = Int32.Parse(identity.Ticket.UserData);
newFile.Uploader = nUserID;
db.Media.Add(newFile);
db.SaveChanges();
//return RedirectToAction("Admin", "Index");
//Save file content goes here
}
if (isSavedSuccessfully)
{
return Json(new { Message = "File saved" });
}
else
{
return Json(new { Message = "Error in saving file" });
}
}
return View();
}
你在服务器上使用绝对路径(来自 MapPath),这不好。此文件对用户不可用。请尝试使用以下代码来指示该文件在"上传"文件夹中可用。
@foreach (var item in Model)
{
<img src="/Uploads/@item.FileName" height="127" width="127"/>
}
您应该使用指向 Web 服务器上的图像(或可由 Web 服务器访问)的相对路径。 例如,您可以在Web根目录上有一个Uploads
文件夹(物理/虚拟最适合您的文件夹)。 然后在数据库中,您将路径存储为/Uploads/Lagos-20140103-00347.jpg
用于图像标记。