【发布时间】:2020-02-20 23:15:11
【问题描述】:
我正在构建一条从我们的服务器下载文件的路径。问题是文件路径包含正斜杠,然后 filePath 变量只包含第一个文件夹。
注意:不用担心 - 代码通过检查第一个文件夹以确保路径从下载目录开始,将文件路径锁定到特定文件夹。
我尝试使用与普通斜杠不同的分隔符,例如 +。如果我这样做,代码确实有效,但这是一个非常糟糕的黑客行为。有没有其他方法可以做到这一点?
换句话说,这是可行的:
http://localhost:5000/files/C/temp+uploads+upload_c64bc04e02
但这不起作用:
http://localhost:5000/files/C/temp/uploads/upload_c64bc04e02
我真的觉得我应该想办法让它发挥作用。
router.get('/files/:bucketCode/:filePath', auth.check, async (req, res) => {
let bucketCode= req.params.bucketCode;
let filePath = req.params.filePath;
【问题讨论】:
-
splat 正是我想要的。不幸的是,它对我不起作用。 router.get('/files/:bucketCode/:filePath*', auth.check, async (req, res) => { let filePath= req.params.filePath; console.log('filePath:', filePath);当我访问时:localhost:5000/files/C/temp/uploads/upload_1e24aa56 服务器控制台读取:filePath: C:\dh3\temp
-
如果我的路由定义是'/files/:bucketCode/*',如何获取路径的值?我一直在寻找这个答案 30 分钟。我一定是搜索错了。