我目前正在MVC4中上传文件但是在我的控制器中我试图将文件大小限制为最大4MB但是收到了以下警告
comparison to integral constant is useless
使用Haacks示例
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{
if (file.ContentLength > 0)
{
if (file.ContentLength < 4000000000 )
{
var fileName = System.IO.Path.GetFileName(file.FileName);
var path = System.IO.Path.Combine(Server.MapPath("~/App_Data/uploads"), fileName);
file.SaveAs(path);
}
当我运行代码时,我收到错误
Maximum request length exceeded.
由于file.ContentLength
是一个我无法控制的int
,我不知道这是怎么回事。任何人都可以帮助我如何限制服务器端的文件大小。
修改对于那些可能想要指出4000000000
为4gb
的人您是对的。但即使我将其替换为4000000
,我的操作也会成功完成,但由于If()
不满意,因此不会保存文件,但file.ContentLength < 4000000
会返回false。
编辑这不是一个重复的问题我想将文件大小限制到某个限制,而不是忽略IIS中的文件大小限制。
答案 0 :(得分:3)
在web.config中设置此值
<httpRuntime maxRequestLength="4096"/>
答案 1 :(得分:0)
对于使用def termsAp(n):
li = []
for x in range(1, n + 1000, 1):
num = 3 * x + 2
if num % 4 != 0:
li.append(num)
return li[:n]
n = int(input())
termsAp(n)
的用户,可以使用以下内容。
IFormFile