我需要验证文件字段,如果它包含特殊字符,则对文件字段不正确。
我正在上传我的文件,在上传后,如果有特殊的租船人,我无法打开它。
我需要验证:
1)文件名 - 没有特殊字符
2)文件大小 - 限制大小
3)文件格式 - 视频,仅限.mp4
注意:感谢
istos
评论我正在使用accept attribute但是 它不会验证,我必须在JS或PHP中进行验证。
我正在使用ajax调用我的表单,而不是使用html form
。
我不确定我是否需要在客户端(jQuery,JS)或服务器端(PHP)或两个站点都这样做。
请帮忙,谢谢
$('body').on('change', '#gl_video_file', function(e) {
var glVideoFiles = event.target.files;
glVideoFileSplit = glVideoFiles[0].name.split(".");
glVideoFileFormat = glVideoFileSplit[1];
glVideoFileName = glVideoFileSplit[0].split(' ').join('_')
alert ("File name : "+glVideoFileName)
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" placeholder="Video file" class="dupFile" id="gl_video_file">
答案 0 :(得分:1)
您可以使用正则表达式检查文件名。在服务器端:
if (!preg_match('/^[a-z0-9_-]+(\.mp4)$/i', $filename)) {
die ('Bad file name format.');
}
对于尺寸,您可以查看:
if ($_FILES["fileinputname"]['size'] > $maxFileSize) {
die('File size is too big.');
}
使用jQuery检查名称:
if (!$('#filenameinputid').val().match(/^[a-z0-9_-]+(\.mp4)$/i)) {
alert('Bad file name format.');
}
和尺寸:
$('#filenameinputid').bind('change', function() {
if (this.files[0].size > maxFileSize) {
alert("File size is too big.");
}
});