基于文件类型上载的条件警报

时间:2016-09-30 11:00:54

标签: javascript jquery

大家好,感谢您的耐心,因为: 首先,这是我的第一个问题,所以让我知道我犯了什么错误。 第二,我是一个javascript / jquery noob。

我编写了一个javascript代码,用于检查图片上传并根据支票结果运行各种提醒。

脚本必须验证两种文件类型(图像和pdf)。但对于图像,它必须验证尺寸和尺寸。对于pdf,它必须仅验证大小。

类似于"如果是图像则检查宽度高度和尺寸" "如果不是图像,但它是pdf然后检查文件大小"和"如果不是图像,如果不是pdf则返回文件类型错误"

现在我想在上传时允许使用pdf并检查其大小,然后返回警告。

但我真的不知道如何区分不同的文件类型。

这是我的原始代码:



jQuery( document ).ready(function($) {

    var _URL = window.URL || window.webkitURL;
    var submits = document.getElementsByClassName('gform_button');
    var submit = submits[0];

    $(".customUpload input:file").click(function(e) {
        this.value = "";
        submit.disabled = false;
    });
    $(".customUpload input:file").change(function(e) {
        var file, img;
        var width, height, size, sizeInMB;

        if ((file = this.files[0])) {
            img = new Image();
            img.onload = function() {
                width = this.width;
                height = this.height;
                size = this.size;
                sizeInMB = (size / (1024*1024)).toFixed(2);
                if (sizeInMB > 20) {
                    alert("File is to big");
                    submit.disabled = true;
                }
                if (width < 300 || height < 300)  {
                    alert("Image size is lower than 300px");
              	    submit.disabled = true;
                };
            };
            img.onerror = function() {
                alert( "not a valid file: " + file.type);
                submit.disabled = true;
            };
            img.src = _URL.createObjectURL(file);
        }

    });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="customUpload">
  <form action="" class="cart">
    <input type="file" id="file" /> <!-- accept="image/gif, image/jpeg, image/png, image/tiff" -->
    <button type="submit" id ="submit" name="submit" class="single_add_to_cart_button gform_button">SUBMIT</button>
  </form>
</div>
&#13;
&#13;
&#13;

非常感谢所有人,祝你有个美好的一天。

1 个答案:

答案 0 :(得分:0)

我添加了此代码以获取扩展名(带点)和大小

var fileExtension = file.name.substr(file.name.length - 4, 4);
var fileSize = file.size;

jQuery( document ).ready(function($) {

    var _URL = window.URL || window.webkitURL;
    var submits = document.getElementsByClassName('gform_button');
    var submit = submits[0];

    $(".customUpload input:file").click(function(e) {
        this.value = "";
        submit.disabled = false;
    });
    $(".customUpload input:file").change(function(e) {
        var file, img;
        var width, height, size, sizeInMB;
        if ((file = this.files[0])) {
            var fileExtension = file.name.substr(file.name.length - 4, 4);
            var fileSize = file.size;
          
            alert(fileExtension + " file with size of " + fileSize);
          
            img = new Image();
            img.onload = function() {
                width = this.width;
                height = this.height;
                size = file.size;
                sizeInMB = (size / (1024*1024)).toFixed(2);
                if (sizeInMB > 20) {
                    alert("File is to big");
                    submit.disabled = true;
                }
                if (width < 300 || height < 300)  {
                    alert("Image size is lower than 300px");
              	    submit.disabled = true;
                };
            };
            img.onerror = function() {
                alert( "not a valid file: " + file.type);
                submit.disabled = true;
            };
            img.src = _URL.createObjectURL(file);
        }

    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="customUpload">
  <form action="" class="cart">
    <input type="file" id="file" /> <!-- accept="image/gif, image/jpeg, image/png, image/tiff" -->
    <button type="submit" id ="submit" name="submit" class="single_add_to_cart_button gform_button">SUBMIT</button>
  </form>
</div>