如何在角度应用程序中将字符串保存到Cloud Storage中的文本文件?

时间:2019-05-07 18:39:08

标签: javascript java angular google-app-engine google-cloud-storage

这是我的问题:

我正在编写一个有角度的应用程序,我使用App Engine和Google Cloud Storage作为后端(JAVA 8)。现在我有了文本,我想将其保存到数据库中。使用云存储时,我需要将此文本另存为文件。一种方法是将我的字符串转换为文件对象,然后通过多部分请求将其发送到服务器。

我该怎么做?

到目前为止,这是我的代码(该代码的目的是发送照片和文字说明):

  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:“ FormData.append的参数2不是对象。”

注意: 即使这似乎超出主题范围,我也会在我的帖子中为后端服务器添加标签,因为我愿意解决此问题,也可以在后端上创建文件。

1 个答案:

答案 0 :(得分:0)

description不是文件,因为它可能不在客户端。

formData.append()用于将文件附加formData,以将其与表单数据一起上传。

好吧,您无法使用javascript将文件保存到服务器。

看到它已经在这里回答了 (Saving a text file on server using JavaScript