使用 Java 脚本验证上传的文件类型

Validate uploaded file type using Java script

本文关键字:文件 类型 Java 脚本 验证 使用      更新时间:2023-09-26

我通过表单获取文件,并要求验证其类型。 但听起来 java 脚本不起作用或看不到调用?

<form enctype="multipart/form-data" action="Upload2.jsp"
 method="post" onsubmit="javascript:return validate();">
    <td><b>Choose txt file To Upload:</b></td>
    <td><input name="file" type="file"></td>
    <td><input type="submit" value="Upload File" ></td>
</form>

这是脚本:

<script language="JavaScript">
    function validate(){
        if(document.form.file.value == "" ) {
            alert("Enter course code !");
            return false;}
        else {
            var value = document.form.file.value;
            var ext = value.substr(dot, value.length);
            //ext = value.slice(file.indexOf(".")).toLowerCase();
            if ( ext=="txt" ) {
                return true; }
            else{
                alert("choose a .txt file");
                return false;}
            }
       }
</script>

这就是形式..我不确定我的脚本是否正确?

您可以使用以下方法捕获字符串中最后一个句点之后的内容:

ext = value.split(".").pop();

你拿你的字符串value把它分成一个数组:

var myValue = "some.thing.ext";
var myArray = myValue.split(".");

现在 myArray 是:

["some", "thing", "ext"];

现在,您可以使用 .pop() 从数组中弹出最后一个值。

var ext = myArray.pop();

现在

ext === "ext";
myArray === ["some", "thing"]

在上下文中:

function validate(){
    if(document.form.file.value == "" ) {
        alert("Enter course code !");
        return false;}
    else {
        var value = document.form.file.value,
            ext = value.split(".").pop();
        if ( ext == "txt" ) {
            return true; }
        else{
            alert("choose a .txt file");
            return false;}
        }
   }

如果您将提交更改为:

onsubmit="javascript:return validate(this);"

然后,您将获得表单元素作为值中的第一个参数:

function validate(form){
    var value = form.file.value,
        ext = value.split(".").pop();
    if( !value ) {
        alert("Enter course code !");
    }
    else if ( ext !== "txt" ) {
        alert("choose a .txt file");
    }
    return ( ext === "txt" );
}

注意:

永远不要使用javaScript作为你唯一的验证。使用某种服务器站点语言来确定验证是否通过。

使用JS使用户在您的网站上操作更加流畅。

验证上传的文件类型并限制其大小的最佳方法是

var ext = $('#uploadFeedback').val().split('.').pop().toLowerCase();
if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
    alert('invalid extension!');
}

以上用于文件类型验证。

var uploadedFile = document.getElementById('uploadFeedback');      
var fileSize = uploadedFile.files[0].size;     

以上用于文件大小验证