отправлять большие изображения из приложения angular 7 на узел apis - PullRequest
0 голосов
/ 16 февраля 2020

У меня есть компонент, в который я загружаю изображения, и у меня также есть возможность обрезки, я использую ngx-image-cropper для этого, он берет изображение, конвертирует в base64 и затем загружает в nodejs API, где я просто сохраняю файл. Проблема в том, что для изображений размером более 2 МБ это не работает, я должен разрешить это для больших изображений.

app.use(bodyParser.json({limit: '40mb', extended: true}))
app.use(bodyParser.urlencoded({limit: '40mb', extended: true}))

Здесь в моем angular коде для изображения

<image-cropper
            [ngClass]="croppedImage == '' ? 'hide' : 'show'"
            [imageChangedEvent]="imageChangedEvent"
            [maintainAspectRatio]="true"
            [aspectRatio]="12 / 4"
            format="png"
            (imageCropped)="imageCropped($event)"
            (imageLoaded)="imageLoaded()"
            (cropperReady)="cropperReady()"
            (loadImageFailed)="loadImageFailed()"
        ></image-cropper>



ageCropped(event: ImageCroppedEvent) {
      this.croppedImage = event.base64;
      // console.log('image cropped')
  }
uploadImage(){
    this.loading = true;
    let b64 = this.croppedImage;
    this.imageService.uploadImageB64(b64)
});

Я указал ограничение размера 40 МБ, у меня 2 проблемы,

  1. Большие изображения не разрешены этим модулем ngx-image-cropper
  2. Размер изображения увеличивается при преобразовании в base64, так как я загружаю большие изображения, мне нужен процесс сжатия изображений, например, если загруженное изображение размером 3 МБ должно стать меньше, чем i МБ, без существенного ухудшения качества.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...