Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在typeScript或JavaScript中过滤图像_Javascript_Angularjs_Typescript - Fatal编程技术网

在typeScript或JavaScript中过滤图像

在typeScript或JavaScript中过滤图像,javascript,angularjs,typescript,Javascript,Angularjs,Typescript,我正在制作一个表单,在应用程序web中获取用户数据,我可以通过输入文件添加一个化身。这一个过滤了带有图像扩展名的文件,但怀疑的是我可以用脚本制作一个文件,并给它一个.jpg扩展名 我能分析的图像 const reader = new FileReader(); reader.onload = (event: any) => { console.log(event); this.avatarUrl = event.target.result; co

我正在制作一个表单,在应用程序web中获取用户数据,我可以通过
输入文件添加一个化身。这一个过滤了带有图像扩展名的文件,但怀疑的是我可以用
脚本制作一个文件,并给它一个
.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.js文件重命名为script.jpg的情况下,您希望将其检测为非图像

方法是:

  • 创建一个图像元素
  • 加载它
  • 错误时拒绝/成功时解决
  • 添加超时:如果在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;
        });
    }
    

  • 太好了。谢谢