1前台:cshtml

  1. </pre><pre name="code" class="csharp">@model BLL.BLL.Product
  2.  
  3. @{
  4. ViewBag.Title = "Add";
  5. }
  6.  
  7. <h2>Add</h2>
  8.  
  9. <form action="../Product/Add" method="post" enctype="multipart/form-data">
  10. <table>
  11. <tr>
  12. <td>@Html.Label("ProductName:")</td>
  13. <td>@Html.TextBoxFor(m=>m.ProductName)</td>
  14. </tr>
  15.  
  16. <tr>
  17. <td>@Html.Label("ProductDesc:")</td>
  18. <td>@Html.TextBoxFor(m=>m.ProductDesc)</td>
  19. </tr>
  20.  
  21. <tr>
  22. <td>@Html.Label("ProductPrice:")</td>
  23. <td>@Html.TextBoxFor(m=>m.ProductPrice)</td>
  24. </tr>
  25.  
  26. <tr>
  27. <td>@Html.Label("ProductImage:")</td>
  28. <td><input type="file" name="ProductImage"/></td>
  29. </tr>
  30.  
  31. <tr>
  32. <!--下拉列表框,数据由后台初始化-->
  33. <td>@Html.Label("ProductCategory:")</td>
  34. <td>@Html.DropDownListFor(m=>m.CId, @ViewBag.cList as IEnumerable<SelectListItem>)</td>
  35. </tr>
  36.  
  37. <tr>
  38. <td><input type="submit" value="submit" /></td></tr>
  39.  
  40. </table>
  41. </form>

2. 后台Controller

  1. public ActionResult Add() {
  2.  
  3. ShoppingDataContext dc = new ShoppingDataContext();
  4.  
  5. //初始化下拉列表框的数据
  6. var linq = from c in dc.ProductCategories select new { c.CategoryId,c.CategoryName};
  7. List<SelectListItem> cList = new List<SelectListItem>();
  8. foreach(var category in linq){
  9. SelectListItem item = new SelectListItem() { Text=category.CategoryName, Value=category.CategoryId};
  10. cList.Add(item);
  11. }
  12. ViewBag.cList = cList;
  13. return View();
  14. }
  15.  
  16. [HttpPost]
  17. public ActionResult Add(Product p)
  18. {
  19. Stream uploadStream = null;
  20. FileStream fs = null;
  21. try
  22. {
  23. //文件上传,一次上传1M的数据,防止出现大文件无法上传
  24. HttpPostedFileBase postFileBase = Request.Files["ProductImage"];
  25. uploadStream = postFileBase.InputStream;
  26. int bufferLen = ;
  27. byte[] buffer = new byte[bufferLen];
  28. int contentLen = ;
  29.  
  30. string fileName = Path.GetFileName(postFileBase.FileName);
  31. string baseUrl = Server.MapPath("/");
  32. string uploadPath = baseUrl + @"Images\Upload\Product\";
  33. fs = new FileStream(uploadPath + fileName, FileMode.Create, FileAccess.ReadWrite);
  34.  
  35. while ((contentLen = uploadStream.Read(buffer, , bufferLen)) != )
  36. {
  37. fs.Write(buffer, , bufferLen);
  38. fs.Flush();
  39. }
  40.  
  41. //保存页面数据,上传的文件只保存路径
  42. string productImage = "/Images/Upload/Product/" + fileName;
  43. p.ProductImage = productImage;
  44. p.ProductId = Guid.NewGuid().ToString();
  45. p.CreationDate = DateTime.Now;
  46.  
  47. ShoppingDataContext dc = new ShoppingDataContext();
  48. dc.Products.InsertOnSubmit(p);
  49. dc.SubmitChanges();
  50. }
  51. catch (Exception ex)
  52. {
  53. ex.StackTrace.ToString();
  54. }
  55. finally {
  56. if(null !=fs){
  57. fs.Close();
  58. }
  59. if (null != uploadStream)
  60. {
  61. uploadStream.Close();
  62. }
  63. }
  64.  
  65. return RedirectToAction("../Category/ListProducts", new { cId=p.CId});
  66. }

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

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

   <httpRuntime maxRequestLength="" />  

【转】 .Net MVC4 上传大文件,并保存表单的更多相关文章

  1. .Net MVC4 上传大文件,并保存表单

    1. 前台 cshtml </pre><pre name="code" class="csharp">@model BLL.BLL.Pr ...

  2. [Asp.net]Uploadify上传大文件,Http error 404 解决方案

    引言 之前使用Uploadify做了一个上传图片并预览的功能,今天在项目中,要使用该插件上传大文件.之前弄过上传图片的demo,就使用该demo进行测试.可以查看我的这篇文章:[Asp.net]Upl ...

  3. php 上传大文件配置upload_max_filesize和post_max_size选项

    php 上传大文件配置upload_max_filesize和post_max_size选项 (2014-04-29 14:42:11) 转载▼ 标签: php.ini upload _files[f ...

  4. PHP上传大文件 分割文件上传

    最近遇到这么个情况,需要将一些大的文件上传到服务器,我现在拥有的权限是只能在一个网页版的文件管理系统来进行操作,可以解压,可以压缩,当然也可以用它来在线编辑.php文件. 文件有40M左右,但是服务器 ...

  5. ASP.NET上传大文件的问题

    原文:http://www.cnblogs.com/wolf-sun/p/3657241.html?utm_source=tuicool&utm_medium=referral 引言 之前使用 ...

  6. php 上传大文件主要涉及配置upload_max_filesize和post_max_size两个选项

    php 上传大文件主要涉及配置 upload_max_filesize 和post_max_size两个选项   今天在做上传的时候出现一个非常怪的问题,有时候表单提交可以获取到值,有时候就获取不到了 ...

  7. SWFUpload上传大文件(暂时用用,真正用的时候还是要改的)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. PHP上传大文件和处理大数据

    1. 上传大文件 /* 以1.5M/秒的速度写入文件,防止一次过写入文件过大导致服务器出错(chy/20150327) */ $is_large_file = false; if( strlen($x ...

  9. QQ上传大文件为什么这么快

    今天和同事在群里讨论“QQ上传大文件/QQ群发送大文件时,可以在极短的时间内完成”是如何做到的. 有时候我们通过QQ上传一个几百M的文件,竟然只用了几秒钟,从带宽上限制可以得出,实际上传文件是不可能的 ...

随机推荐

  1. delphi读取xml文件

    功能: 根据省份更新地市信息 -------------------------------------------------------------------------------} proc ...

  2. 黄聪:TortoiseGit(乌龟git)保存用户名密码的方法

    1.在项目文件夹右键--tortoiseGit--设置 2.编辑全局.git/config 3.加上这行代码 里面会有你先前配好的name 和email,只需在下面加一行 [credential] h ...

  3. RTB业务知识之1-原生广告

    一.背景 Native Advertising (Native Ads), 又称为原生广告, 是2013全球媒体界爆红的关键词,从2012年年底,就有人开始提了这个名词,接着到处都可以看到这个名词,再 ...

  4. BlueZone automation note1

    To run the patch test cases in C:\sliData\TAF\bzw\test-packs\run_jobs via run_example_tests_smoke_te ...

  5. 自动化测试Java一:Selenium入门

    From: https://blog.csdn.net/u013258415/article/details/77750214 Selenium入门 欢迎阅读Selenium入门讲义,本讲义将会重点介 ...

  6. 将Json对象数组转化成JS Array数组

    private format(cards:any):Array<any>{ var result = new Array(); cards.forEach(element => { ...

  7. java高并发编程(四)高并发的一些容器

    摘抄自马士兵java并发视频课程: 一.需求背景: 有N张火车票,每张票都有一个编号,同时有10个窗口对外售票, 请写一个模拟程序. 分析下面的程序可能会产生哪些问题?重复销售?超量销售? /** * ...

  8. springboot(二 如何访问静态资源和使用模板引擎,以及 全局异常捕获)

    在我们开发Web应用的时候,需要引用大量的js.css.图片等静态资源. 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static / ...

  9. 问题 B: 【例9.3】求最长不下降序列(基础dp)

    问题 B: [例9.3]求最长不下降序列 时间限制: 1 Sec  内存限制: 128 MB提交: 318  解决: 118[提交][状态][讨论版][命题人:quanxing] 题目描述 设有由n( ...

  10. mysql root情况

          180829 11:15:20 [ERROR] Fatal error: Please read "Security" section of the manual to ...