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

时间:2018-08-30 16:06:55

标签: javascript python django web-development-server

我正在使用Django进行一些Web开发。用户可以在其中上传图片到我的服务器。

这是代码的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;
    }
}

它没有用。文件上传后,什么也没有发生。但是,如果我删除验证部分:

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;
    }
}

它又开始工作了。

与其他Web开发平台不同,Django不支持javascript调试,因此我无法在其上放置打印语句。

1 个答案:

答案 0 :(得分:0)

好像我拼写的“文件”不正确。

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;
    }
}

干杯!