如何获取为浏览器上的文件输入选择的图像尺寸[重复]

Posted

技术标签:

【中文标题】如何获取为浏览器上的文件输入选择的图像尺寸[重复]【英文标题】:How to get the dimensions of an image selected for a file input on the browser [duplicate] 【发布时间】:2021-12-17 11:33:03 【问题描述】:

我有一个图片上传框。标准的东西:

<input id="image-upload-input" type="file" />

一旦用户选择了一个文件,我就可以访问内容并通过 Axios 将其发送到我的 API,如下所示:

const imageUploadInput = document.getElementById("image-upload-input");
const file = imageUploadInput.files[0];
if (!file) 
  return;


const reader = new FileReader();
const component = this;

reader.onload = function (event) 
  axios.post("upload/image", Buffer.from(event.target.result));
;
reader.readAsArrayBuffer(file);

但是,我对尺寸有一些限制,想在客户端检查这些限制。

我相当肯定它可以做到。我还没有尝试过,但我想如果我只是将数据弹出到带有数据src 属性的(理想情况下不可见的)img 标记中,那可能会起作用。有没有人有任何工作代码?还是有更好的方法?

【问题讨论】:

【参考方案1】:

添加这样的东西应该可以工作

imageUploadInput.onchange = function (event) 
  const file = imageUploadInput.files[0];
  if (!file) 
    return;
  
  const image = new Image();
  image.onload = function() 
    console.log(this.width, this.height);
  
  image.src = URL.createObjectURL(file);
;

【讨论】:

以上是关于如何获取为浏览器上的文件输入选择的图像尺寸[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用带有接受图像的文件输入来访问笔记本电脑上的网络摄像头

catia如何带尺寸保存

使用 readAsDataURL 加载后如何检索图像尺寸?

如何获取图像文件的尺寸?

输入字段未返回预期值[重复]

如何获取所有纸张尺寸名称和相应的像素尺寸?