显示上传的图片asp.net mvc

时间:2014-05-01 13:05:20

标签: asp.net asp.net-mvc

我正在尝试将图片上传到我的文件夹并将其显示在视图中。 我的控制器:

[HttpPost]
    public ActionResult Upload(HttpPostedFileBase file)
    {
         if (file != null)
                {
                    string pic = System.IO.Path.GetFileName(file.FileName);
                    string path = System.IO.Path.Combine(Server.MapPath("~/images"), pic);
                    file.SaveAs(path);
                    ViewBag.Path = path;

                }
            return View();
        }

我的观点:

@{
    ViewBag.Title = "Upload";
}

@using (Html.BeginForm("Upload", "Home", FormMethod.Post, 
                            new { enctype = "multipart/form-data" }))
{  
    <label for="file">Upload Image:</label> 
    <input type="file" name="file" id="file" style="width: 100%;" /> 
    <input type="submit" value="Upload" class="submit" /> 

}

<h2>Upload</h2>

<img src="@ViewBag.path" alt="Image"/>

通过这样做,图像不在我的视图中,只有alt文本。生成HTML源:

<img src="C:\Users\D Stag\Documents\Visual Studio 2012\Projects\Data\Web\images\1232743916lituviai23afp.jpg"/>

图像保存正确,存在于该文件夹中。

1 个答案:

答案 0 :(得分:3)

而不是 -

  

ViewBag.Path = path;

尝试这种方式 -

ViewBag.Path = String.Format("/images/{0}", pic); //output should be "~/images/image1.jpg"

更新:路径中不需要“〜”。然后显示图像。