Visual Studio 2012-ASP.net-MVC 4
データベースに保存されているサーバーパスからの画像を表示するのに問題があります。
HttpPostedFileBaseを使用して、ユーザーがアップロードしたファイルを取得しています。
using (var uow = _db.CreateUnitOfWork())
{
if (imageUpload != null && imageUpload.ContentLength > 0)
{
var fileName = Path.GetRandomFileName() + Path.GetExtension(imageUpload.FileName);
var path = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/Uploads"), fileName);
imageUpload.SaveAs(path);
achievement.ImageLoc = path;
}
uow.Add(achievement);
Save(uow);
return true;
}
これにより、アップロードされたファイルの絶対パスがデータベースに保存され、ファイルがサーバーに保存されます。このパスを取得して画像ファイルをビューに表示しようとすると、ファイルが見つからないような空白の四角だけが表示されます(右クリック->画像のURLをコピーすると約:空白)。パスを別のビューで使用して、ユーザーがファイルをダウンロードできるようにしているため、パスが正しいことがわかります。これは正しく機能しています。また、古いファイルを正常に削除して新しいファイルをアップロードするファイルをユーザーが編集できるようにしています。私が抱えている唯一の問題は、ビューに画像を表示することです。
私が試してみました:
<img src="@Html.Encode(Model.ImageLoc)" />
<img src=@Url.Content(Model.ImageLoc)" />
誰かが何かを提案することができますか?