Как сохранить строку в текстовом файле в облачном хранилище в угловом приложении? - PullRequest
0 голосов
/ 07 мая 2019

Вот моя проблема:

Я пишу угловое приложение, я использую App Engine и Google Cloud Storage в качестве бэкэнда (JAVA 8).Теперь у меня есть текст, и я хочу сохранить его в своей базе данных.При использовании облачного хранилища этот текст необходимо сохранить в виде файла.Один из способов сделать это - преобразовать мою строку в файл Object и отправить ее на сервер с помощью многокомпонентного запроса.

Как это сделать?

Вот мой код (цель этого кода - отправить фотографию и текстовое описание):

  uploadAlbum(index:number){
    const formData = new FormData();
    //`myPhoto` is a file created with the <input type="file"> tag
    formData.append('file', myPhoto, '/gcs/my-bucket/' + index +'/cover/cover.jpg');
    //here is my problem here `description` is not a file
    formData.append('description', description, '/gcs/my-bucket/' + index +'/cover/cover.txt');
    this.http.post('/api/photos',formData).subscribe(
      (data: any) => {
        response = data;
      },
       err => {
         console.log(err)
        }
      );
  }

Поскольку description переменная является строкой, на моей консоли появляется следующая ошибка:

ОШИБКА TypeError: «Аргумент 2 в FormData.append не является объектом.»

ПРИМЕЧАНИЕ: Даже если это может показаться не по теме, я добавил теги для внутреннего серверана моем посте, поскольку я открыт для решения этой проблемы, создавая файл на сервере также.

1 Ответ

0 голосов
/ 07 мая 2019

description - это не файл, потому что, вероятно, его нет на стороне клиента.

formData.append() используется для добавления файлов с помощью formData для загрузки их с данными формы.

Ну, вы не можете сохранить файл на сервер, используя JavaScript.

см. Здесь уже ответили ( Сохранение текстового файла на сервере с использованием JavaScript )

...