我實現了一個文件上傳使用ASP.NET MVC 3和Microsoft.Web.Helpers NuGet包圖像。該實現很簡單,因爲它允許您瀏覽文件並將其上載到指定的目錄。MVC 3圖片上傳圖片
以下是我對使用ASP.NET MVC 3和Microsoft.Web.Helpers 的NuGet插件我的圖片上傳的解決方案。
現在視圖模型代碼
namespace MvcImageUpload.Models {
public class ImageUploadViewModel {
[UIHint("UploadedImage")]
public string ImageUrl { get; set; }
public string ImageAltText { get; set; }
}
}
現在的控制器我只是下降到這個Home控制器,因爲這只是一個模擬的項目得到它的工作。我剛剛添加了一個將ImageUploadViewModel作爲參數的ActionResult
。
public ActionResult Upload(ImageUploadViewModel model) {
var image = WebImage.GetImageFromRequest();
if (image != null) {
if (image.Width > 500) {
image.Resize(500, ((500 * image.Height)/image.Width));
}
var filename = Path.GetFileName(image.FileName);
image.Save(Path.Combine("../Uploads/Images", filename));
filename = Path.Combine("~/Uploads/Images", filename);
model.ImageUrl = Url.Content(filename);
model.ImageAltText = image.FileName.Substring(0, image.FileName.Length - 4);
}
return View("Index", model);
}
我對圖像的上載的觀點是簡單,它有一個Html.BeginForm,它處理後形式的方法和具有編碼類型設置爲「多部分/格式數據」。
然後使用Microsoft.Web.Helpers.FileUpload助手,我從HTTP帖子請求圖像,然後使用名爲ImageViewer的自定義DisplayFor模板顯示它。
@model MvcImageUpload.Models.ImageUploadViewModel
@using Microsoft.Web.Helpers;
@{
ViewBag.Title = "Index";
}
<h2>Image Uploader</h2>
@using (Html.BeginForm("Upload", "Home", FormMethod.Post,
new { @encType = "multipart/form-data" })) {
@FileUpload.GetHtml(initialNumberOfFiles: 1, allowMoreFilesToBeAdded: false,
includeFormTag: false, addText: "Add Files", uploadText: "Upload File") <br />
<input type="submit" name="submit"
value="Upload Image" text="Upload Images"
style="font-size: .9em;" />
@Html.DisplayFor(x => x, "ImageViewer")<br />
}
這裏是習俗DisplayTemplate看起來像
@model MvcImageUpload.Models.ImageUploadViewModel
@if (Model != null) {
<h4 style="color:Green;">Upload Success!</h4>
<p>
Alt Text has been set to <strong>@Model.ImageAltText</strong>
</p>
<img style="padding: 20px;"
src="@(String.IsNullOrEmpty(Model.ImageUrl) ? "" : Model.ImageUrl)"
id="uploadedImage" alt="@Model.ImageAltText"/>
}
所有這一切的作品和形象得到成功上傳到表單提交的/Uploads/Images/FileName.extension。
我的問題
如何我現在可以有另一種看法,以顯示該目錄中的所有圖像,分頁和能夠選擇和刪除和形象,從視圖和目錄?
另外我知道Microsoft.Web.Helpers.FileUpload,支持上傳多個文件,但我無法找到如何實現這與我目前的解決方案。任何幫助都會很有幫助。
問題是我不知道如何去執行。 – 2011-05-17 09:05:13
此外,我發佈此幫助其他人誰可能需要知道如何使用mvc 3上傳文件。 – 2011-05-17 09:05:53
我已更新我的答案,並添加了一些鏈接到一些基本的教程,這將有助於您創建此.... – 2011-05-17 09:11:23