我正在尝试上传特定照片,引用我公共/资产目录中的客户端文件夹。文件路径应为public / assets /:id。但是,从我的代码中,当它运行时,文件路径总是以public / assets / undefined的形式返回。有没有人有关于如何解决这个问题的建议?这是快递中的代码。
app.param('id', function (req, res, next, id) {
console.log(req.params.id);
next();
});
app.post('/file-upload', function(req, res) {
// get the temporary location of the file
var tmp_path = req.files.thumbnail.path;
// set where the file should actually exists - in this case it is in the "images" directory
var target_path = './public/assets/'+req.params.id;
// move the file from the temporary location to the intended location
fs.rename(tmp_path, target_path, function(err) {
if (err) throw err;
// delete the temporary file, so that the explicitly set temporary upload dir does not get filled with unwanted files
fs.unlink(tmp_path, function() {
if (err) throw err;
res.send('File uploaded to: ' + target_path + ' - ' + req.files.thumbnail.size + ' bytes');
});
});
});
答案 0 :(得分:1)
在路由中,您没有传递参数,请检查并更改您的路线逻辑
app.post('/file-upload/:id', function(req, res) {
var target_path = './public/assets/'+req.params.id; //or use req.param('id')
................
});
发布链接传递您的第二段是您的ID 例如:http://localhost:port/file-upload/123
如果您遇到问题,请使用'?'使用传递变量作为查询字符串运营商
app.post('/file-upload', function(req, res) {
var target_path = './public/assets/'+req.query.id;
................
});
发布链接就像这样 例如:http://localhost:port/file-upload?id=123
答案 1 :(得分:0)
您可以在:id
的第一个参数中使用.post
,如:
app.post('/file-upload/:id', function(req, res) {
然后使用req.params.id
在代码中进行检索。
在HTML中,您应根据要传递的action
更改id
路径。