[英]Error when trying upload file aspx / C#
我有以下C#代码:
string File = "../images/main/profile-icon.png";
if (Request.ContentLength != 0)
{
int Size = Request.Files[0].ContentLength / 1024;
if (Size <= 512)
{
string LocalFile = Request.Files[0].FileName;
int dot = LocalFile.LastIndexOf('.');
string FileType = LocalFile.Substring(dot + 1);
if (FileType == "gif" || FileType == "jpg" || FileType == "png" || FileType == "GIF" || FileType == "JPG" || FileType == "PNG")
{
int LastIndex = LocalFile.LastIndexOf(@"\") + 1;
File = LocalFile.Substring(LastIndex, LocalFile.Length - LastIndex);
File = DateTime.Today.ToString();
string Path = Server.MapPath(" ../images/profiles") + "..\\" + File;
Request.Files[0].SaveAs(Path);
}
}
else
{
Response.Write("The file is too big !");
}
}
else
{
Response.Write("Unknown Error !");
}
问题是在第三行代码中出现以下错误:
索引超出范围。 必须为非负数并且小于集合的大小。
这是表单HTML源:
<form name="Register" runat="server" style="margin-top: 15px;" onsubmit="return validateProfile('Register');">
<p>
photo:
<input type="file" name="File" style="margin-right:10px;" />
</p>
</form>
我的问题是为什么以及如何解决这个问题?
希望获得帮助,谢谢!
似乎Files
数组没有元素,也许您可以添加检查:
if(Request.Files.Count > 0)
{
// continue here ...
}
这可能意味着您没有正确上传文件,请求中缺少该文件。
编辑:尝试在表单标签中设置enctype="multipart/form-data"
。 因此它将变为:
<form name="Register" runat="server" style="margin-top: 15px;" onsubmit="return validateProfile('Register');" enctype="multipart/form-data">
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.