如何从ReactivForms中的FormControl返回图像的名称

时间:2019-06-20 17:47:01

标签: angular typescript

我想从Angular ReactivForms中图像的FormControl中获取名称。我得到了像file = "C:\fakepath\Screenshot (1).png"这样的图像的完整路径,但是我只想要Screenshot (1).png。 我使用control.value获取图像的名称。 我想添加,我的C:目录C:\fakepath\

中没有此文件夹

这是我的方法:

 requiredFileType(categoryList: CategoryModel[]) {
    return function (control: FormControl) {
      const file = control.value;
      if (file) {
        const extension = file;

        for (let i = 0; i < categoryList.length; i++) {

          for (let j = 0; j < categoryList[i].productModel.length; j++) {
            for (let k = 0; k < categoryList[i].productModel[j].imageProduct.length; k++) {
              console.log(categoryList[i].productModel[j].imageProduct[k].image_path);
              if (categoryList[i].productModel[j].imageProduct[k].image_path.includes(extension)) {
                console.log(categoryList[i].productModel[j].imageProduct[k].image_path);

                return{
                  requiredFileType: true
                };

              }
            }

          }

        }
        return null;

      }

      return null;

    };
  }

有人知道这个的解决方法吗?

2 个答案:

答案 0 :(得分:2)

如果您的路径具有固定的字符数(不更改),请使用substring

const file = control.value;
const fileName = file.substring(10, str.length);

演示:

let str = "C:\fakepath\Screenshot (1).png";
const mystr = str.substring(10, str.length);
console.log(mystr)

答案 1 :(得分:2)

您可以在javascript中使用substring()lastIndexOf()函数

const path = control.value;
const fileName = path.substring(path.lastIndexOf('\') + 1, path.length);