asp.net-mvc-3 – Mvc 3图像上传库
|
我已经使用ASP.NET Mvc 3和Microsoft.Web.Helpers NuGet包实现了图像的文件上传.实现是简单的,因为它允许您浏览文件并将其上传到指定的目录. 这是我使用ASP.NET MVC 3和Microsoft.Web.Helpers NuGet插件的图像上传解决方案. 现在的ViewModel代码 namespace MvcImageUpload.Models {
public class ImageUploadViewModel {
[UIHint("UploadedImage")]
public string ImageUrl { get; set; }
public string ImageAltText { get; set; }
}
}
现在对于控制器,我简单地把它放到了家庭控制器中,因为这只是一个模拟项目来使它工作.我刚刚添加了一个ActionResult,它将ImageUploadViewModel作为参数. 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,它处理Post Form方法,并且将编码类型设置为“multipart / form-data”. 然后使用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,支持上传多个文件,但是我找不到如何用我目前的解决方案来实现.任何帮助都会被大大的赞赏. 解决方法单击“上传图像”按钮后,系统应调用使用“请求”获取文件的方法.[HttpPost]
public ActionResult Upload()
{
if(Request.Files != null && Request.Files.Count > 0)
{
for (int i = 0; i < request.Files.Count; i++)
{
var postFile = request.Files[i];
if (postFile != null && postFile.ContentLength > 0)
{
if (postFile.ContentLength < GetMaxRequestLength()) //10MB
{
var file = new ContractAttachment
{
Name = Path.GetFileName(postFile.FileName),ContentType = postFile.ContentType,FileLength = postFile.ContentLength,FileData = GetStreamBuffer(postFile)
};
files.Add(file);
}
}
}
}
}
希望这个帮助. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 传统的ASP.NET Web窗体与MVC
- asp.net – (客户端)禁用提交按钮的最佳方法是什么?
- asp.net-web-api – 使用swashbuckle api文档的http basic
- asp.net-mvc – asp.net mvc ajax post – redirecttoactio
- asp.net-mvc – ASP.NET MVC的生产力?
- asp.net-mvc – 如何在使用RedirectToAction时设置协议?
- asp.net – SignalR并不总是准备好后start().done()?
- asp.net-mvc – 覆盖控制器AuthorizeAttribute只有一个操作
- asp.net mvc ajax上传解决方案?
- asp.net-mvc – 是否有一个ASP.NET MVC HtmlHelper的图像链
- asp.net – Request.IsLocal是安全还是可以欺骗?
- asp.net-mvc – 具有SelectList(s)最佳实践的ASP
- asp.net – 有没有比升级到Visual Studio 2010 U
- ASP.NET DropDownList不保留所选项目在回发
- ASP.Net Cache是否在不同的用户会话之间共享?
- asp.net – 通过web.config覆盖machine.config
- asp.net – 拥有专用应用程序池,将Web应用程序保
- ASP.NET错误:页面Y.ascx无法使用用户控件X.ascx
- asp.net-mvc – 如何在asp.net mvc中处理分页?
- IIS 7.5应用程序初始化ASP.NET Web服务(预热),而
