ASP.NET MVC 5 文件上传时,总获取不到文件的信息

red-fly 2019-07-23 01:50:09
刚学习asp.net 5 mvc,采用vs2015编写,win7 64位系统。
通过向导生成基本框架之后,对页面进行稍许修改,以增加文件上传功能。

参考的网址:
https://www.cnblogs.com/xielong/p/5502606.html
https://www.cnblogs.com/CreateMyself/p/5414200.html

在动作里获取不到输入的文件。代码大致如下。
在Index.cshtml中,加入如下代码:
@using (Html.BeginForm("UpAFile", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input id="file" type="file" />
<input type="submit" class="btn btn-default" value="提交" />
}


在HomeController.cs中加入如下的动作:
[HttpPost]
public ActionResult UpAFile(HttpPostedFileBase file)
{
if (file == null || file.ContentLength == 0)
return View();

try
{
string fileFolder = "savedir\\";
var path = Path.Combine(fileFolder, file.FileName);
file.SaveAs(path);
return View();
}
catch (Exception ex)
{
//return 0;
}

return View();
}


调试时,先选择一个文件,然后点击“提交”,此时确实走到了UpAFile()里,但是其file一直为null。
进行了如下的尝试,结果都和上面一样UpAFile() 的file为null:
1. 删除 UpAFile()前面的 [HttpPost]
2. <input id="file" type="file" />中的id改名为 "file1",即后面加个编号
3. <input id="file" type="file" />中的id改名为 "ufile",同时UpAFile()的参数名也改为 ufile

实在是找不到问题出在哪里了,这刚开始学mvc5就来了个下马威
...全文
422 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
maxRequestLength单位是byte,你要传250m得换算下,然后HttpContext.Current.Request.Files就是你在方法里直接获取就能获取到文件
red-fly 2019-07-23
  • 打赏
  • 举报
回复
引用 2 楼 娃都会打酱油了 的回复:
HttpContext.Current.Request.Files

我刚开始接触,你这说的太简单了,完全找不到该在哪里改,该如何修改呢
red-fly 2019-07-23
  • 打赏
  • 举报
回复
引用 1 楼 q363186 的回复:
表单控件你要给他加个Name 才行,他是识别name的,不是ID ,这个坑大大地,没毛病,你基本功不够了

上传文件的大小限制,是在哪里修改的?我选择5MB的文件没有问题,选择一个250MB的文件,就卡住了。在Web.config文件中的<system.web>节里,
<httpRuntime targetFramework="4.6" maxRequestLength="153600" executionTimeout="900" />
后面两项是我按照网上加上,似乎没啥效果,不知道那个153600是个什么单位
red-fly 2019-07-23
  • 打赏
  • 举报
回复
引用 1 楼 q363186 的回复:
表单控件你要给他加个Name 才行,他是识别name的,不是ID ,这个坑大大地,没毛病,你基本功不够了

你说的太对了,确实是name,我看了几遍我参考的网址,上面写着name,竟然被我无视,惭愧。
基本功不够,这确实,就刚刚学习asp.net mvc,现在是看着框架照葫芦画瓢,真是难呀。现在是刚刚开始,后面还有很多挑战呢。
话说,项目要求能选择目录,然后遍历其中的所有文件上传,这个也是一个头大的事情。现在先把文件上传搞定这个事情弄好再继续弄其它的了
  • 打赏
  • 举报
回复
HttpContext.Current.Request.Files
楠小南 2019-07-23
  • 打赏
  • 举报
回复
表单控件你要给他加个Name 才行,他是识别name的,不是ID ,这个坑大大地,没毛病,你基本功不够了

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧