正在检查多个文件的文件扩展名
本文关键字:文件 扩展名 检查 | 更新日期: 2023-09-27 18:28:55
我试图将5个文件名组合成一个字符串,以检查通过用户上传的文件的扩展名,这些文件只允许.jpg、.png和.jpeg,但我不确定我的方法是否正确,尤其是的部分
string filess = "FileExtentio, FileExtentio2, FileExtentio3, FileExtentio4, FileExtentio5";
所以你能给我你的建议,正确的方式做这部分代码吗
if (FileUploadImg1.HasFile || FileUploadImg2.HasFile || FileUploadImg3.HasFile || FileUploadImg4.HasFile || FileUploadImg5.HasFile)
{
string FileExtentio = System.IO.Path.GetExtension(FileUploadImg1.FileName);
string FileExtentio2 = System.IO.Path.GetExtension(FileUploadImg2.FileName);
string FileExtentio3 = System.IO.Path.GetExtension(FileUploadImg3.FileName);
string FileExtentio4 = System.IO.Path.GetExtension(FileUploadImg4.FileName);
string FileExtentio5 = System.IO.Path.GetExtension(FileUploadImg5.FileName);
string filess = "FileExtentio, FileExtentio2, FileExtentio3, FileExtentio4, FileExtentio5";
if (filess.ToLower() == ".jpeg" && filess.ToLower() == ".png" && filess.ToLower() == ".jpeg")
{
您可以使用非常有用的List<string>
。
List<string> fileExtentions = new List<string>();
if (FileUploadImg1.HasFile)
fileExtentions.Add(System.IO.Path.GetExtension(FileUploadImg1.FileName));
if (FileUploadImg2.HasFile)
fileExtentions.Add(System.IO.Path.GetExtension(FileUploadImg2.FileName));
if (FileUploadImg3.HasFile)
fileExtentions.Add(System.IO.Path.GetExtension(FileUploadImg3.FileName));
if (FileUploadImg4.HasFile)
fileExtentions.Add(System.IO.Path.GetExtension(FileUploadImg4.FileName));
if (FileUploadImg5.HasFile)
fileExtentions.Add(System.IO.Path.GetExtension(FileUploadImg5.FileName));
if(fileExtentions.Any(f=>!f.Equals(".jpg", StringComparison.OrdinalIgnoreCase) &&
!f.Equals(".jpeg", StringComparison.OrdinalIgnoreCase) &&
!f.Equals(".png", StringComparison.OrdinalIgnoreCase))
{
//Invalid file format detected
}
在string FileExtensio
的代码块上方,添加以下内容:
string isValid = 'true';
然后,对于每一条类似的线路
string FileExtentio = System.IO.Path.GetExtension(FileUploadImg1.FileName);
更改为
string FileExtentioTemp = System.IO.Path.GetExtension(FileUploadImg1.FileName);
string FileExtentio = FileExtentioTemp == 'jpg' || FileExtenioTemp == 'png' || FileExtentioTemp == 'jpeg' ? FileExtentio : isValid = false;
那么,对于你的情况,只需说
if(isValid == 'true'){
doStuff;
}
我真的希望下面的第一行在asp中是可能的。这个解决方案会让你有机会对每个文件采取不同的行动,在我看来会更干净一些。
var fileUploads = new List<FileUpload>
{
FileUploadImg1,
FileUploadImg2,
FileUploadImg3,
FileUploadImg4,
FileUploadImg5,
};
var allowedExtensions = new List<string>{ ".jpg", ".jpeg", ".png" };
foreach(FileUpload fileUpload in fileUploads)
{
if(!fileUpload.HasFile)
{
continue;
}
if(allowedExtensions.Contains(System.IO.Path.GetExtension(fileUpload.FileName)))
{
// do stuff with valid file
}
else
{
// do stuff with invalid file
}
}