使用文件路径显示数据库中的图像

本文关键字:图像 数据库 显示 文件 路径 | 更新日期: 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用于图像标记。