一个上传图片返回url的nodejs程序,返回
{
"name": "name",
"url": "/uploader/upload"
}
怎么才能将本地路径转化成http路径呢,比如 example.com/upload/a.jpg
router.post('/', function (req, res) {
if (req.busboy) {
var name = ''
req.busboy.on('file', function (fieldname, file, fileName, encoding, mimeType) {
name = fileName
var stream = fs.createWriteStream(path.join(__dirname, '../', uploadPath, fileName))
file.pipe(stream)
console.log('uploading %s -> %s', fileName, stream.path)
}).on('finish', function () {
res.send({
name: 'name',
url: path.join(uploadPath, name)
})
})
req.pipe(req.busboy)
} else {
console.log('uploadFile - busboy undefined.')
res.status(502)
}
})
既然你用的是express框架,那么先将某个目录设置为静态目录,如下:
然后将上传的文件存放于该目录,并返回文件路径,这样用户访问该路径就能下载文件。
如果想要对访问该路径的用户进行鉴权,那可以自己写个模块,express.static的源码也可以参考一下。
大致代码如下:
如下是官方例子做了些改动:
参考:http://www.expressjs.com.cn/4...