简体   繁体   English

用于验证上传的文件是否为图像的Javascript无法正常工作

[英]Javascript for validating if uploaded file is image isn't working

I'm doing some web development using Django. 我正在使用Django进行一些Web开发。 There comes a part where user could upload images to my server. 用户可以在其中上传图片到我的服务器。

Here is the Javascript side of the code. 这是代码的Javascript方面。

var uploadField = document.getElementById("file_upload"); 

uploadField.onchange = function(){
    var file_type=this.file[0]['type']; // file_type = 'image/jpg'
    if (file_type.split('/')[0] !== 'image'){
        alert("Not an Image");
        this.value = "";
    }
    else if(this.files[0].size > 2097152){
        alert("File is too big!");
        this.value = "";
    }
    else{
        this.form.submit();
        document.getElementById('celimsg').innerHTML='Analyzing image...';
        document.getElementById('celi').src=gif_url;
    }
}

It didn't work. 没用 When the files are uploaded, nothing happens. 文件上传后,什么也没有发生。 But if I remove the validation part: 但是,如果我删除验证部分:

var uploadField = document.getElementById("file_upload");

uploadField.onchange = function(){
    if(this.files[0].size > 2097152){
        alert("File is too big!");
        this.value = "";
    }
    else{
        this.form.submit();
        document.getElementById('celimsg').innerHTML='Analyzing image...';
        document.getElementById('celi').src=gif_url;
    }
}

It started working again. 它再次开始工作。

Unlike other web development platform, Django doesn't support debugging for javascript and I can't put print statements on it etiher. 与其他Web开发平台不同,Django不支持javascript调试,因此我无法在其上放置打印语句。

Looks like I spelled 'files' incorrectly. 看起来我拼写的“文件”不正确。

var uploadField = document.getElementById("file_upload");

uploadField.onchange = function(){
    var file_type=this.files[0]['type'];

    if (file_type.split('/')[0] !== 'image'){
        alert("Not an Image");
        this.value = "";
    }
    else if(this.files[0].size > 2097152){
        alert("File is too big! Keep it under 2MB.");
        this.value = "";
    }
    else{
        this.form.submit();
        document.getElementById('celimsg').innerHTML='Analyzing image...';
        document.getElementById('celi').src=gif_url;
    }
}

Cheers! 干杯!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM