请在下面找到我的代码。我试图限制用户上传小于4 MB的文件,但是当我选择830 KB的文件时,我的内容长度为80 MB。
此代码flSignature.PostedFile.ContentLength
无效。请帮忙。
TIA
string uploadMsg = "";
string appPath = Server.MapPath("~");
string parentpath = appPath + "\\app\\Pictures\\";
//To Upload Multiple Files on Single Click
HttpFileCollection hfc = Request.Files;
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hpf.ContentLength > 0)
{
//if (hpf.ContentLength > 4096)
//{
// uploadMsg = "Collective file size is more than 4 MB.";
//}
//else
//{
if (hfc.AllKeys[i].Contains("flSignature"))
{
if (flSignature.PostedFile.ContentLength > 4096)
{
uploadMsg = "Collective file size is more than 4 MB.";
break;
}
else
{
if (Path.GetFileName(hpf.FileName).ToLower().Contains("xls") || Path.GetFileName(hpf.FileName).ToLower().Contains("doc"))
{
showalert("Only Image can be uploaded.");
}
else
{
hpf.SaveAs(parentpath + lblUniqueNo.Text + "_signature_" + Path.GetFileName(hpf.FileName));
}
}
}
else if (hfc.AllKeys[i].Contains("flPhoto"))
{
if (flPhoto.PostedFile.ContentLength > 4096)
{
uploadMsg = "Collective file size is more than 4 MB.";
break;
}
else
{
if (Path.GetFileName(hpf.FileName).ToLower().Contains("xls") || Path.GetFileName(hpf.FileName).ToLower().Contains("doc"))
{
showalert("Only Image can be uploaded.");
}
else
{
hpf.SaveAs(parentpath + lblUniqueNo.Text + "_passport_" + Path.GetFileName(hpf.FileName));
}
}
}
else if (hfc.AllKeys[i].Contains("flIdentDoc"))
{
if (flIdentDoc.PostedFile.ContentLength > 4096)
{
uploadMsg = "Collective file size is more than 4 MB.";
break;
}
else
{
hpf.SaveAs(parentpath + lblUniqueNo.Text + "_doc_" + Path.GetFileName(hpf.FileName));
}
}
//}
}
}
答案 0 :(得分:5)
ContentLength属性携带的值以字节表示,而不是以千字节为单位。
因此,当您发出flSignature.PostedFile.ContentLength > 4096
时,您实际上是在检查上传文件的大小是否大于4千字节,而不是4兆字节。
尝试类似:
if (flSignature.PostedFile.ContentLength > 4096 * 1024) // 4194304 bytes
{
uploadMsg = "Collective file size is more than 4 MB.";
break;
}
答案 1 :(得分:2)
PostedFile.ContentLength
文件中maxrequest
长度{/ 1}}时, web.config
必须正常工作