最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

通过驱动器api上传时看不到Base64字符串img

运维笔记admin12浏览0评论

通过驱动器api上传时看不到Base64字符串img

通过驱动器api上传时看不到Base64字符串img

我已通过node express中的API将base64 img字符串上传到Google云端硬盘。上载img后,在云端硬盘中将无法看到它。我不确定如何解决此格式问题。我知道我可以先在本地保存img,然后再上传保存的img文件,但我希望有一种更简单的方法。

我的代码:

 const uploadImg = async (folderId,img)=>{


 process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = 0


 const scopes = [
     ''
 ];
 const auth = new google.auth.JWT(
     demoApiCreds.client_email, null,
     demoApiCreds.private_key, scopes
 );

 const drive = google.drive({ version: 'v3', auth });

 const fileMetadata = {
     'name': 'Client_Design_ScreenShotTest',
     'mimeType':'image/jpeg',
     'parents':[folderId]
 };


const uploadImg = img.split(/,(.+)/)[1];

const media = {
     body: uploadImg
 }

 let res = await drive.files.create({
     resource: fileMetadata,
     media: media,
     fields: 'id',
 });
 console.log('the response is',res);
 console.log('the data is ',res.data);
 return res.data;

}

编辑:

文件以jpg格式存储在驱动器中,但img为空白,之后单击img,Google驱动器会抱怨该文件无法读。下载后,img仍然为空白。

基本64 img字符串为

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhAAAADqCAYAAADzlnzfAAAAAXNSR0I...

我已按照其他线程中的建议在上传之前删除了data:image / png; base64。无论是否带有此前缀,它都会失败。

回答如下:

您需要将mimeType更改为image/png

参见此处what Mime Types是

编辑:fileMetadata的属性名称称为requestBody,而不是resource

让res =等待drive.files.create({requestBody:fileMetadata,媒体:媒体,栏位:「id」,});

https://github/googleapis/google-api-nodejs-client/blob/7e2b586e616e757b72f7a9b1adcd7d232c6b1bef/src/apis/drive/v3.ts#L3628

发布评论

评论列表(0)

  1. 暂无评论