javascript - 是否可以在上传前检查图像尺寸?

标签 javascript jquery file-upload client-side

我有一个用于将图像上传到服务器的上传控件,但在上传之前我只想确保图像的尺寸是否正确。 在客户端有什么可以用 JavaScript 完成的吗?

最佳答案

您可以在提交表单之前检查它们:

window.URL = window.URL || window.webkitURL;

$("form").submit( function( e ) {
    var form = this;
    e.preventDefault(); //Stop the submit for now
                                //Replace with your selector to find the file input in your form
    var fileInput = $(this).find("input[type=file]")[0],
        file = fileInput.files && fileInput.files[0];

    if( file ) {
        var img = new Image();

        img.src = window.URL.createObjectURL( file );

        img.onload = function() {
            var width = img.naturalWidth,
                height = img.naturalHeight;

            window.URL.revokeObjectURL( img.src );

            if( width == 400 && height == 300 ) {
                form.submit();
            }
            else {
                //fail
            }
        };
    }
    else { //No file was input or browser doesn't support client side reading
        form.submit();
    }

});

这仅适用于现代浏览器,因此您仍然需要在服务器端检查尺寸。你也不能相信 客户端,所以这是您无论如何都必须在服务器端检查它们的另一个原因。

关于javascript - 是否可以在上传前检查图像尺寸?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57384302/

相关文章:

javascript - 将文件上传到我的本地 apache 服务器

javascript - 如何使用此 jquery 代码传递文件值

c# - 使用angular2将图像上传到asp.net core

javascript - 没有Jquery的数组总和

javascript - 在 Bootstrap 复选框中启用多选选项?

javascript - 在 Parse 中检索字符串

c# - C# 中用于视频的文件上传控件

javascript - 紧固此 Ajax 响应

javascript - 如何使用 onclick 事件在同一窗口和选项卡中打开链接?

jQuery UI Datepicker 月份和年份组合在 jQuery BlockUI(弹出)中不起作用