我不确定这告诉我什么? 我有这个:
<system.web>
<customErrors mode="Off"/>
当我点击一个应该上传文件的按钮时。这样做我得到上面列出的错误。我在我的本地机器上运行。我尝试调试它,我得到错误而不是我的断点。我把“你好”的一行认为是在尝试在做断点之前评估“if”语句。仍然失败,不知道为什么。
protected void btnUpload_Click(object sender, EventArgs e)
{
string a = "hello";
if (FuQuote.HasFile)
{
string path = "~/Quotes/" + FuQuote.FileName;
FuQuote.SaveAs(MapPath(path));
}
}
此问题可能由多种问题引起,包括:
答案 0 :(得分:4)
您的web.config中设置的maxRequestLength值是多少?您可能正在选择一个大于maxRequestLength值的文件。
<system.web>
<httpRuntime maxRequestLength="4096"/>
</system.web>
答案 1 :(得分:2)
最大请求长度给您带来麻烦。默认情况下,允许的最大文件上载大小为4MB。如果您尝试上传更大尺寸的文件,连接将重置,并且不会到达“HasFile”代码。检查您尝试上传的文件的大小,然后尝试使用较小的文件。您可以通过添加
来增加文件大小限制<configuration>
<system.web>
<httpRuntime maxRequestLength="SIZE" />
</system.web>
</configuration>
标签将默认存在。如果它在web.config中,则添加该行。 SIZE应该用尺寸限制替换。
注意:大小以KB格式输入。
此外,在try-catch块中编写这样的代码总是更好。发生例外有多种可能性。
protected void btnUpload_Click(object sender, EventArgs e)
{
try
{
string a = "hello";
if (FuQuote.HasFile)
{
string path = "~/Quotes/" + FuQuote.FileName;
FuQuote.SaveAs(MapPath(path));
}
}catch(Exception ex)
{
// Exception handling code goes here.
}
}
答案 2 :(得分:0)
上传控件的FileName
属性返回文件的完整路径。您需要将文件名解析为上载逻辑的一部分。我想你也需要使用FuQuote.PostedFile.FileName
。
导入System.IO
命名空间并执行此操作:
string path = String.Format("~/Quotes/{0}", Path.GetFileName(FuQuote.PostedFile.FileName));
FuQuote.SaveAs(Server.MapPath(path));