javascript - 在 TypeScript 或 JavaScript 中过滤图像

标签 javascript angularjs typescript

我正在制作一个表单来获取应用程序网络中的用户数据,我可以在其中通过输入文件添加头像。这个过滤带有图像扩展名的文件,但我担心的是我是否可以用 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);

但是我找不到任何东西 区分真实图像和隐藏的脚本

感谢您的回答。

最佳答案

如果我理解:你想检测文件是否是图像。

特别是在重命名为 script.jpg 的 script.js 文件的情况下,您希望将其检测为不是图像。

方法是:

  1. 创建图像元素。
  2. 载入
  3. 错误拒绝/成功解决
  4. 添加超时:如果它在 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;
        });
    }
    

关于javascript - 在 TypeScript 或 JavaScript 中过滤图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53145396/

相关文章:

javascript - 如何在ckeditor编辑器中获取保存事件?

javascript - <select> 上的 applyBindings() 导致我的 subscribe() 触发,

javascript - jQuery inArray 找不到匹配项

javascript - Angular2 和 AngularFire2 - 无法读取 null 的属性 'auth'

typescript - ionic 4 存储注入(inject)错误 : no provider

javascript - Nodejs/koa 中的 Typescript,针对 ES6 安全吗?

javascript - 理解对象数组的 ng-repeat

javascript - 在 JavaScript 中使用 if else 语句设置超时

javascript - 点击时 Angular 改变 ng-class

angular - 如何将服务中的数据存储到 Angular2 中的类/接口(interface)?