Php 有没有一种更快的方法可以在客户端和服务器端查找所有图像、音频和视频文件类型
下面我有3个javascript函数,用于检查其文件的合法文件扩展名。问题是,如果我按照我实现它的方式来做,那么每个函数都会有一个非常大的case语句,说明哪些文件扩展名是合法使用的。所以我的问题是除了做Php 有没有一种更快的方法可以在客户端和服务器端查找所有图像、音频和视频文件类型,php,javascript,Php,Javascript,下面我有3个javascript函数,用于检查其文件的合法文件扩展名。问题是,如果我按照我实现它的方式来做,那么每个函数都会有一个非常大的case语句,说明哪些文件扩展名是合法使用的。所以我的问题是除了做 `case:jpeg: case:jpg: case:png` 等等。是否有一种快速创建案例陈述的方法,用于检查所有合法的图像文件扩展名类型、所有合法的视频文件扩展名类型和所有合法的音频文件扩展名类型 下面是我目前用于验证图像、视频和音频文件扩展名类型的3个javascript函数: 图片
`case:jpeg:
case:jpg:
case:png`
等等。是否有一种快速创建案例陈述的方法,用于检查所有合法的图像文件扩展名类型、所有合法的视频文件扩展名类型和所有合法的音频文件扩展名类型
下面是我目前用于验证图像、视频和音频文件扩展名类型的3个javascript函数:
图片:
function imageValidation(imageuploadform) {
var val = $(imageuploadform).find(".fileImage").val();
switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
case 'gif':
case 'jpg':
case 'jpeg':
case 'pjpeg':
case 'png':
return true;
case '':
$(imageuploadform).find(".fileImage").val();
alert("To upload an image, please select an Image File");
return false;
default:
alert("To upload an image, please select a valild file extension.");
return false;
}
return false;
}
视频:
function videoValidation(videouploadform) {
var val = $(videouploadform).find(".fileVideo").val();
switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
case 'mpg':
case 'mov':
case 'wmv':
case 'rm':
case '3g2':
case '3gp':
case 'm2v':
case 'm4v':
return true;
case '':
$(videouploadform).find(".fileVideo").val();
alert("To upload an video, please select an Video File");
return false;
default:
alert("To upload an video, please select a valild file extension.");
return false;
}
return false;
}
音频:
function audioValidation(audiouploadform) {
var val = $(audiouploadform).find(".fileAudio").val();
switch(val.substring(val.lastIndexOf('.') + 1).toLowerCase()){
case 'wav':
case 'aif':
case 'mp3':
case 'mid':
return true;
case '':
$(audiouploadform).find(".fileAudio").val();
alert("To upload an audio, please select an Audio File");
return false;
default:
alert("To upload an audio, please select a valild file extension.");
return false;
}
return false;
}
还有谁知道php在检查所有图像文件类型、视频文件类型和音频文件类型方面的等效功能是什么,因为我还需要对文件类型进行服务器端验证。我只是想知道是否有比列出所有可能的图像、视频和音频文件类型更快的方法。永远不要相信文件扩展名。在服务器上,您应该检查文件的MIME类型。任何人都可以更改分机MIME类型是使用文件签名确定的,并且更加准确。文本文件将是
Text/plain
,等等。@MitchDempsey甚至MIME类型都不可信,尤其是对于某些文件,但我确实同意您最初的断言,即扩展不可信。好吧,如果我对图像、视频和音频使用MIME,如何在上面的代码中实现这一点?例如,如何在上面的图像验证函数中使用图像类型MIME?在客户端,可能最容易检查扩展名。但是,一旦它到达服务器,您应该使用MIME类型进行验证。但这是否意味着对于var regex,在检查文件扩展名之前,我需要存储20-30种不同的文件类型?这与使用case相同,但代码要少得多,并且您不需要使用多个javascript函数多次解析字符串。还有MIME(多用途Internet邮件扩展),它只是告诉正在传输的数据类型。同样根据您的示例,它将是17个不同的文件扩展名。因此,是否没有更简短的方法来实际编写代码以检查图像、音频和视频的所有文件类型?此javascript函数比最初的3个其他函数短得多。只需在需要的每个位置重用相同的函数,并在每个位置重新定义AcceptableFileNamesRegex参数。节省40多行我的意思是,我是否必须单独键入每个文件扩展名,例如,是否没有快捷方式检查所有图像文件扩展名类型。我必须写/jpg/jpeg/tiff/png/gif等吗
function checkFileExtension(AcceptableFileNamesRegex, fileName){
var pattern = AcceptableFileNamesRegex;
return pattern.test(fileName);
}
var regex = /wav|aif|mp3|mid/
checkFileExtension(regex, "myWav.wav")