代码之家  ›  专栏  ›  技术社区  ›  Vivek Nuna Chetan sabhaya

文件读取器在TypeScript中不工作

  •  1
  • Vivek Nuna Chetan sabhaya  · 技术社区  · 6 年前

    我在一个页面上有多个图像。我想从客户端向服务器端代码发送图像数据。随叫随到 createCategoryTemplate this.CategoryList categoryDetails.image 也是空的。

    save(): void {
    var fileByteArray = '';
    var Image;
    let j: any;
    this.CategoryList = [];
    for (j = 0; j < this.form.value.addresses.length; j++) {
        Image = (<HTMLInputElement>document.getElementById(j));
    
        var fileReader = new FileReader();
    
        fileReader.onload = (e) => {
            var imageData = fileReader.result;
            var bytes = new Uint8Array(imageData);
            for (var i = 0; i < bytes.length; ++i) {
                fileByteArray += (String.fromCharCode(bytes[i]));
            }
    
            let categoryDetails = new CategoryDto();
            categoryDetails.categoryName = this.form.value.addresses[j].categoryName;
            categoryDetails.image = btoa(fileByteArray);
            this.CategoryList.push(categoryDetails);
        }
    
        fileReader.readAsArrayBuffer(Image.files[0]);
    
    }
    
    this._categoryservice.createCategoryTemplate(this.CategoryList).subscribe((result) => {
        this.notify.info(this.l('SavedSuccessfully'));
    });
    
    }
    

    当我使用断点逐行运行客户端代码时,它按预期工作。

    onload 被调用 readAsArrayBuffer 创建类别模板 在之后立即被调用 readAsArrayBuffer .

    但我解决不了,请帮忙。

    0 回复  |  直到 6 年前