验证文件字段html标记文件名,如果它包含特殊字符

时间:2015-01-08 07:40:36

标签: javascript php jquery validation

我需要验证文件字段,如果它包含特殊字符,则对文件字段不正确。

我正在上传我的文件,在上传后,如果有特殊的租船人,我无法打开它。

我需要验证:

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">

1 个答案:

答案 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.");
    }
});