博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net MVC4 上传大文件,并保存表单
阅读量:5010 次
发布时间:2019-06-12

本文共 2972 字,大约阅读时间需要 9 分钟。

1. 前台 cshtml

@model BLL.BLL.Product    @{      ViewBag.Title = "Add";  }    

Add

@Html.Label("ProductName:") @Html.TextBoxFor(m=>m.ProductName)
@Html.Label("ProductDesc:") @Html.TextBoxFor(m=>m.ProductDesc)
@Html.Label("ProductPrice:") @Html.TextBoxFor(m=>m.ProductPrice)
@Html.Label("ProductImage:")
@Html.Label("ProductCategory:") @Html.DropDownListFor(m=>m.CId, @ViewBag.cList as IEnumerable
)
View Code

 

 2. 后台Controller

public ActionResult Add() {          ShoppingDataContext dc = new ShoppingDataContext();        //初始化下拉列表框的数据      var linq = from c in dc.ProductCategories select new { c.CategoryId,c.CategoryName};      List
cList = new List
(); foreach(var category in linq){ SelectListItem item = new SelectListItem() { Text=category.CategoryName, Value=category.CategoryId}; cList.Add(item); } ViewBag.cList = cList; return View(); } [HttpPost] public ActionResult Add(Product p) { Stream uploadStream = null; FileStream fs = null; try { //文件上传,一次上传1M的数据,防止出现大文件无法上传 HttpPostedFileBase postFileBase = Request.Files["ProductImage"]; uploadStream = postFileBase.InputStream; int bufferLen = 1024; byte[] buffer = new byte[bufferLen]; int contentLen = 0; string fileName = Path.GetFileName(postFileBase.FileName); string baseUrl = Server.MapPath("/"); string uploadPath = baseUrl + @"Images\Upload\Product\"; fs = new FileStream(uploadPath + fileName, FileMode.Create, FileAccess.ReadWrite); while ((contentLen = uploadStream.Read(buffer, 0, bufferLen)) != 0) { fs.Write(buffer, 0, bufferLen); fs.Flush(); } //保存页面数据,上传的文件只保存路径 string productImage = "/Images/Upload/Product/" + fileName; p.ProductImage = productImage; p.ProductId = Guid.NewGuid().ToString(); p.CreationDate = DateTime.Now; ShoppingDataContext dc = new ShoppingDataContext(); dc.Products.InsertOnSubmit(p); dc.SubmitChanges(); } catch (Exception ex) { ex.StackTrace.ToString(); } finally { if(null !=fs){ fs.Close(); } if (null != uploadStream) { uploadStream.Close(); } } return RedirectToAction("../Category/ListProducts", new { cId=p.CId}); }
View Code

 

 3. 修改web.config 中对文件上传大小的限制

在 <system.web></system.web> 直接增加如下:

 

 

 

 

转载于:https://www.cnblogs.com/GoCircle/p/6561228.html

你可能感兴趣的文章
cookie、session和token的概念入门
查看>>
保护网站页面内容+版权
查看>>
Golang模拟客户端POST表单功能文件上传
查看>>
重启进程
查看>>
js 进度条效果
查看>>
RelativeLayout
查看>>
注意细节
查看>>
currying 柯里化,返回函数
查看>>
ASP.NET WebForm(MVC)下实现消息推送(提供简单Demo下载)
查看>>
Java IO流
查看>>
python调用C语言
查看>>
第一阶段意见评论
查看>>
【EF6学习笔记】(七)读取关联数据
查看>>
2015 省赛随便写写
查看>>
更改Outlook 2013中Exchange数据文件存放路径
查看>>
IIS如何避免子web应用程序中继承根目录web.config配置
查看>>
218. The Skyline Problem
查看>>
delegate作为操作符的使用
查看>>
php 运算符
查看>>
黑马程序员_第12、13天
查看>>