javascript - 返回本地存储图像的 URL [Node JS API]
问题描述
我正在创建一个接收 base64 字符串的 API,将其转换为图像 [label.jpeg],然后返回图像的 URL。现在我被困在如何创建本地图像的 URL 以便可以公开访问它。
下面是我的代码,目标是在调用 API 时返回“label.jpeg”的 URL 地址。
// Post base64 string
app.post('/post-base64', (req, res) => {
// Captured img [base64 string]
let strBase64 = req.body
console.log(strBase64)
// Convert base64 --> img.jpeg
let buffer = Buffer.from(strBase64, 'base64')
console.log(buffer)
// Write base64 to file
let writeStream = fs.createWriteStream('label.txt')
writeStream.write(buffer, 'base64')
writeStream.on('finish', () => {
console.log('WROTE ALL!')
})
writeStream.end()
// Save img as 'label.jpeg'
fs.writeFileSync('label.jpeg', buffer)
res.send({
// TOD0: Return label.jpeg link
})
})
谢谢。
解决方案
您可以将上传的图像存储在您通过express.static
. 例如:
// add this to your app.js
app.use(express.static('public'))
// store uploaded image in the public folder
app.post(..) => {
// ... note that you should probably switch
// to the non-blocking version e.g. fs.promises.writeFile(...)
fs.writeFileSync(__dirname + '../public/name-of-img.jpeg', buffer)
})
Express 现在将负责提供文件,因此图像的 URL 将是http://yourhostname/name-of-img.jpeg
推荐阅读
- python - django 1.11 未检测到更改
- postgresql - Postgres Group By - 每个用户的比率计算
- ios - 使用 swift SDK for iOS 的 lambdaInvoker 是否有任何超时?
- spring - MyBatis TypeHandler 中正确的 ObjectFactory
- wordpress - “无效的用户名”WooCommerce 错误消息来自哪里?
- vba - 引用宏中的表格单元格
- r - R中带有Genlasso包的融合套索
- extjs - 禁用存储额外加载器
- javascript - 带有可编辑单元格的角表
- java - Android - 从密钥库中删除密钥/别名