这是我的问题:
我正在编写一个有角度的应用程序,我使用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不是对象。”
注意: 即使这似乎超出主题范围,我也会在我的帖子中为后端服务器添加标签,因为我愿意解决此问题,也可以在后端上创建文件。
答案 0 :(得分:0)
description
不是文件,因为它可能不在客户端。
formData.append()
用于将文件附加formData
,以将其与表单数据一起上传。
好吧,您无法使用javascript将文件保存到服务器。
看到它已经在这里回答了 (Saving a text file on server using JavaScript)