首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从ngx-image-cropper返回文件上传- Angular

从ngx-image-cropper返回文件上传- Angular
EN

Stack Overflow用户
提问于 2020-04-05 19:35:21
回答 2查看 4.8K关注 0票数 4

我正在使用ngx-image-cropper裁剪我的图像。我需要从ngx-image-cropper检索裁剪后的图像才能上传。但是,我不能通过它来检索File对象。

这是我用来在用户裁剪图像时触发的代码,

代码语言:javascript
复制
imageCropped(event: ImageCroppedEvent) {
    this.croppedImage = event.base64;
    this.cropperHeight = event.height;
    this.cropperWidth = event.width;
    this.croppedEvent =event.file;//This is how i tried to get file
}

当我尝试上传文件时,它有一些错误。因此最好提供一种从ngx-image-cropper获取文件对象方法

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-06-22 02:05:07

若要将裁剪后的图像作为文件而不是base64字符串返回,请添加以下内容:

代码语言:javascript
复制
import { ImageCroppedEvent, base64ToFile } from 'ngx-image-cropper';

  imageCropped(event: ImageCroppedEvent) {
    // Preview
    this.croppedImage = event.base64;

    const fileToReturn = this.base64ToFile(
      event.base64,
      this.data.imageChangedEvent.target.files[0].name,
    )

    return fileToReturn;
  }


  base64ToFile(data, filename) {

    const arr = data.split(',');
    const mime = arr[0].match(/:(.*?);/)[1];
    const bstr = atob(arr[1]);
    let n = bstr.length;
    let u8arr = new Uint8Array(n);

    while(n--){
        u8arr[n] = bstr.charCodeAt(n);
    }

    return new File([u8arr], filename, { type: mime });
  }
票数 8
EN

Stack Overflow用户

发布于 2020-08-14 09:34:27

该包包含方法base64ToFile

代码语言:javascript
复制
// Import the method:

import { ImageCroppedEvent, base64ToFile } from 'ngx-image-cropper';

.....
imageCropped(event: ImageCroppedEvent) {
    this.croppedImage = event.base64;
    let File = base64ToFile(this.croppedImage);
}

来源:https://github.com/Mawi137/ngx-image-cropper/releases/tag/3.0.0

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61041916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档