Return URL 本地存储的图像 [Node JS API]
Return URL of locally stored image [Node JS API]
我正在创建一个接收 base64 字符串的 API,将其转换为图像 [label.jpeg],然后是图像的 return URL。现在我陷入了如何创建 URL 本地图像以便可以公开访问的问题。
下面是我的代码,目标是调用 API 时 'label.jpeg' 的 return 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
})
})
谢谢。
您可以将上传的图像存储在您通过 statically 到 express.static
提供的“public”文件夹中。例如:
// 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
我正在创建一个接收 base64 字符串的 API,将其转换为图像 [label.jpeg],然后是图像的 return URL。现在我陷入了如何创建 URL 本地图像以便可以公开访问的问题。
下面是我的代码,目标是调用 API 时 'label.jpeg' 的 return 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
})
})
谢谢。
您可以将上传的图像存储在您通过 statically 到 express.static
提供的“public”文件夹中。例如:
// 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