作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在调用 Google 云端硬盘的下载 API,然后我想使用 fs.writeFile
或 fs.writeFileSync
在本地写入下载的文件。这就是我正在做的事情:
const writeFile = util.promisify(fs.writeFile)
const file_from_google = await axios.get(`https://www.googleapis.com/drive/v3/files/${id}?alt=media`,
{headers:
{'Authorization': `Bearer ${someToken}`},
},)
const fullPath = path.join(__dirname, '..', 'downloads','testFile.docx')
writeFile(fullPath, file_from_google.data)
虽然它确实在指定目录中为我创建了文件,但无论执行 writeFile
或 writeFileSync
,文件都会损坏。我还尝试直接使用 fs.writeFileSync 而不是 promise 它。几乎每次我收到的损坏文件都比原始文件大小大。有人可以告诉我什么是将下载的文件正确写入目录的好方法吗?
最佳答案
您需要将 responseType: 'arraybuffer'
选项添加到 axios.get
const writeFile = util.promisify(fs.writeFile)
const file_from_google = await axios.get(`https://www.googleapis.com/drive/v3/files/${id}?alt=media`,
{responseType: 'arraybuffer, headers:
{'Authorization': `Bearer ${someToken}`},
},)
const fullPath = path.join(__dirname, '..', 'downloads','testFile.docx')
writeFile(fullPath, file_from_google.data)
关于javascript - fs.writeFileSnyc/fs.writeFile 写入损坏的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51637632/
我正在调用 Google 云端硬盘的下载 API,然后我想使用 fs.writeFile 或 fs.writeFileSync 在本地写入下载的文件。这就是我正在做的事情: const wri
我是一名优秀的程序员,十分优秀!