文件上载扩展名
本文关键字:扩展名 上载 文件 | 更新日期: 2023-09-27 18:25:47
我正在尝试上传多个经过筛选的扩展名的文件。即使我提供了正确的文件,我也无法上传文件。请帮我解决这个问题。
HttpFileCollection hfc = Request.Files;
for (int i = 0; i <= hfc.Count - 1; i++) { HttpPostedFile hpf = hfc[i]; string sFileExt1 = Path.GetExtension(hfc[i].FileName); if (hpf.ContentLength > 0) { if (sFileExt1 != ".jpg" || sFileExt1 != ".jpeg") { //lblMsg.Text = "Extension not supported"; lblMsg.Text = sFileExt1.ToString(); break; } else { hpf.SaveAs(Server.MapPath("Special_Requests''") + Path.GetFileName(hpf.FileName)); iUploadedCnt += 1; lblMsg.Text = "File(s) upload successsfuly."; } } }ayha
您的扩展名不能同时为.jpg和.jpeg。基本上,如果扩展名不是.jpg或不是.jpeg,你就说失败了。所以File.jpeg会导致一个真正的条件(扩展名!=jpg),File.jpg(扩展名;=jpeg)也是如此
尝试If(sFileExt1 != ".jpg" && sFileExt1 != ".jpeg")
更好的解决方案
正如评论中所指出的,我认为更好的解决方案如下(未经测试):
List<string> validExtensions = new List<string> {".jpg", ".jpeg", ".png" };
if (validExtensions.Contains(sFileExt1.ToLower()))
{
hpf.SaveAs(Server.MapPath("Special_Requests''") + Path.GetFileName(hpf.FileName));
iUploadedCnt += 1;
lblMsg.Text = "File(s) upload successfully.";
}
else
{
//lblMsg.Text = "Extension not supported";
lblMsg.Text = sFileExt1;
break;
}