在TypeScript或JavaScript中过滤图像

kupeojn6  于 2022-12-05  发布在  TypeScript
关注(0)|答案(1)|浏览(98)

我正在制作一个表单来获取应用程序Web中的用户数据,我可以在其中通过input file添加一个头像。这个表单过滤带有图像扩展名的文件,但我关心的是,我是否可以制作一个带有script的文件,并给予它一个.jpg扩展名。
我能分析的图像

const reader = new FileReader();
    reader.onload = (event: any) => {
      console.log(event);
      this.avatarUrl = event.target.result;
      console.log(this.avatarUrl);
    };
    reader.readAsDataURL(this.avatarSelected);

但是我找不到任何东西来区分真实的图像和隐藏的scripts
谢谢你的回答。

dxxyhpgq

dxxyhpgq1#

如果我理解:您希望检测文件是否已映像。
特别是在script.js文件被重命名为script.jpg的情况下,您希望将其检测为 NOT 图像。
其做法是:
1.创建图像元素。
1.加载它
1.出错时拒绝/成功时解决
1.添加超时:如果在X秒后没有加载,则将url更改为假url以停止加载。

function testImage(url) {

    return new Promise((resolve, reject) => {
      let timer;
      const image = new Image();
      image.onerror = image.onabort = () => {
          clearTimeout(timer);
          reject("error");
      };
      image.onload = function() {
           clearTimeout(timer);
           resolve("success");
       };
       timer = setTimeout(function() {
          img.src = "fakeUrl"; // stop loading
          reject("timeout");
       }, 3000); 
       img.src = url;
    });
}

相关问题