我正在尝试将图片上传到我的文件夹并将其显示在视图中。 我的控制器:
[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"/>
图像保存正确,存在于该文件夹中。
答案 0 :(得分:3)
而不是 -
ViewBag.Path = path;
尝试这种方式 -
ViewBag.Path = String.Format("/images/{0}", pic); //output should be "~/images/image1.jpg"
更新:路径中不需要“〜”。然后显示图像。