Загрузка изображения в Angular

Я пытался загрузить изображение с помощью Angular в хранилище Google. И все нормально работает с Postman. Но я застрял с угловым машинописным текстом. Может ли кто-нибудь предложить мне способ сделать это?

.html файл

 <input type = "file" accept = "image/png, image/jpeg" class = "form-control upload-btn" formControlName = "imageUpload" placeholder = "Upload Images" (change) = "uploadImage($event)"  required>

.ts-файл

 uploadImage(event: any) {
if (event.target.files && event.target.files[0]) {
  const uploadImage=event.target.files[0];

  const fileObject = {
    userId: this.userId,
    bucketName: 'Test123',
    image: uploadImage
  };

  this.userService.uploadImage(fileObject).subscribe(data=>{
  },err=>{
    console.info("error occured")
  }
  )
}

}

.сервисный файл

uploadImage(fileObject: any){
return this.http.post('http://localhost:1337' + 'upload-image' , fileObject);

}

Никаких ошибок не возникает на стороне бэкенда. Он отлично работал с Почтальон. Я не уверен в файле .тс.

Какую ошибку вы видите в интерфейсе/браузере или инструментах разработчика

chintuyadavsara 29.03.2022 06:32

можете ли вы поделиться URL-адресом, который вы используете в почтальоне для загрузки, можете ли вы опубликовать здесь URL-адрес

Manektech Knowledge Base 29.03.2022 06:33

Привет @chintuyadavsara, ошибка в том, что он никогда не попадет внутрь this.userService.uploadImage(fileObject).subscribe(data=>{ } this. Поэтому изображение не добавило ведро

Dasaya_Developer 29.03.2022 06:36

Привет @ManektechKnowledgeBase, я использовал http://localhost:1337/upload-image этот URL-адрес, который такой же, как в файле службы.

Dasaya_Developer 29.03.2022 06:37

если он не входит внутрь, это может привести к ошибке, пожалуйста, проверьте, что это за ошибка, и дайте подробную информацию

chintuyadavsara 29.03.2022 06:38

@chintuyadavsara, пожалуйста, проверьте это. ошибка: {ошибка: SyntaxError: неожиданный токен U в JSON в позиции 0 в JSON.parse (<анонимный>) в XMLHtt…, текст: «Файл успешно загружен»} заголовки: HttpHeaders {normalizedNames: Map(0), lazyUpdate: null, lazyInit: ƒ} сообщение: «Ошибка HTTP во время синтаксического анализа для локальный хост: 1337/загрузить-изображение» имя: «HttpErrorResponse» ok: false статус: 200 statusText: «ОК» url: «локальный хост: 1337/загрузить-изображение»

Dasaya_Developer 29.03.2022 06:44

@HariDev Пожалуйста, откройте инструменты разработчика Chrome, перейдите на вкладку сети и посмотрите ответ один раз, эта ошибка обычно возникает, когда сервер возвращает ошибку (например, ошибка сервера 500)

chintuyadavsara 29.03.2022 06:54

можете ли вы разделить полезную нагрузку как для почтальона, так и для полезной нагрузки со снимка экрана вкладки сети

Manektech Knowledge Base 29.03.2022 07:07
uploadImage(fileObject: any){ return this.http.post(this.baseUrl + GlobalConstants.uploadImage , fileObject, { responseType: 'text'}); } когда я использую { responseType: 'text'} , он попал внутрь сервиса @chintuyadavsara. Но все еще не показано в ведре
Dasaya_Developer 29.03.2022 07:42

Эй, попробуйте использовать FormData для загрузки любого изображения на сервер.

Prasenjeet Symon 29.03.2022 07:59

@PrasenjeetSymon, можете ли вы объяснить, как это сделать?

Dasaya_Developer 29.03.2022 08:18

Вот пример, который показывает, как использовать FormData, предложенный @PrasenjeetSymon.

Roopa M 29.03.2022 09:07

Спасибо ребята! Я мог бы использовать FormData. Спасибо за ваши решения.

Dasaya_Developer 31.03.2022 13:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
13
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как предложил @PrasenjeetSymon, использование FormData поможет загружать изображения в Angular.

Вот похожая тема, которые демонстрируют, как использовать FormData

You can use the tag from HTML:

<input type = "file" name = "file" id = "file" (change) = "onFileChanged($event)" />

and in the component:

public files: any[];

contructor() { this.files = []; }

onFileChanged(event: any) {
  this.files = event.target.files;
}

onUpload() {
  const formData = new FormData();
  for (const file of this.files) {
      formData.append(name, file, file.name);
  }
  this.http.post('url', formData).subscribe(x => ....);
}

Другие вопросы по теме