Asp.net mvc 使用ASP.NETMVC上载文件-获取名称但没有文件流,我做错了什么?

Asp.net mvc 使用ASP.NETMVC上载文件-获取名称但没有文件流,我做错了什么?,asp.net-mvc,upload,Asp.net Mvc,Upload,我的观点是: <!-- Bug (extra 'i') right here-----------v --> <!-- was: <form method="post" enctype="mulitipart/form-data" action="/Task/SaveFile"> --> <form method="post" enctype="multipart/form-data" action="/Task/SaveFile"> <i

我的观点是:

<!-- Bug (extra 'i') right here-----------v  -->
<!-- was: <form method="post" enctype="mulitipart/form-data" action="/Task/SaveFile"> -->
<form method="post" enctype="multipart/form-data" action="/Task/SaveFile">
<input type="file" id="FileBlob" name="FileBlob"/>
<input type="submit"  value="Save"/>
<input type="button" value="Cancel" onclick="window.location.href='/'" />
</form>
根据我所能找到的每一个代码示例,这似乎是实现它的方法。我尝试过使用大小文件,结果没有差别。表单字段始终包含与我选择的文件名匹配的文件名,并且Request.Files集合始终为空

我认为这不相关,但我正在使用VS开发Web服务器。AFAIK支持与IIS相同的文件上载

时间不早了,我可能错过了一些明显的东西。如果有任何建议,我将不胜感激

var file = Request.Files[sFileName];
应该是

var file = Request.Files["FileBlob"];

也就是说,
Request.Files.Count
应该是1。。。嗯

我不知道发布亵渎言论的政策是什么,但问题是:

enctype="mulitipart/form-data"
那里额外的
i
阻止了文件的上传。必须运行Fiddler才能看到它从一开始就没有发送文件

应改为:

enctype="multipart/form-data"

很高兴你发现了你的错误


作为旁注,您需要尝试/了解文件处理代码,以便知道文件权限等的设置是否正确。

对于将来可能偶然发现此帖子的人,下面是Scott Hanselman关于此主题的一篇精彩文章:

对其进行了更改,并再次尝试确认,但没有更改。Request.Files[“FileBlob”]也返回null。Request.Files.Count仍为0。我将编辑代码示例以澄清问题。实际上,我没有涉及文件系统。该文件存储在数据库中。但是谢谢。哈哈:)我错过了!干得好!也许你可以通过提及解决方案和标记自己的答案等方式来更新你最初帖子的底部。很好!或者更新代码,这样人们复制粘贴第一个示例至少可以得到正确的代码。由于复制粘贴本文中的enctype,我已经有过两次此问题+1来自未来。我在谷歌上搜索了一个MVC表单的enctype,永远记不起来了,并且在没有读取整个线程的情况下复制了enctype。因为它不起作用而感到相当不安。该死的那个多余的我,它又咬人了!:)@使用(Html.BeginForm(“Index”,“Home”,FormMethod.Post,new{enctype=“multipart/form data”})){}和Phil Haack的更新版本,包括ASP.Net MVC2的增强功能:请参阅相关问题
enctype="multipart/form-data"