3

我正在努力将文件名从 server/app.js 传递到 client/app/ 中的控制器

我正在使用 Multer 处理文件上传,它工作正常,但我需要将文件名传递回客户端以在下一个视图中显示它。

这是我的代码:

服务器/app.js

app.use(multer({ dest: 'client/assets/uploads',
 rename: function (fieldname, filename) {
    return filename+Date.now();
  },
    onFileUploadStart: function (file) {
      console.log(file.originalname + ' is starting ...')
    },
    onFileUploadComplete: function (file) {
      console.log(file.fieldname + ' uploaded to  ' + file.path)
      done=true;
    }
}));


app.post('/api/photo',function(req,res){
  if(done==true){
    photoName = req.files.userPhoto.name;
    res.json(photoName);
  }
});

它显示了新的文件名,但我需要它以可用的形式出现,并且当我在做所有这些服务器端时,我的控制器中没有任何东西可以处理传入的响应。

任何帮助将不胜感激。

4

1 回答 1

0

好的,所以在与这个斗争了一整天之后,我得到了一个有效的修复方法,所以我想我会与你分享它,但确实必须有一种更清洁、更优雅的方式来做到这一点:

app.post('/api/photo',function(req,res){
  if(done==true){
    photoName = req.files.userPhoto.name;
    photoName = encodeURIComponent(photoName);
    res.redirect('../course?img=' + photoName);
  }
});

只需在查询字符串中发送我需要的数据并在客户端获取它。

如果有人可以对此进行改进,请发布。

干杯。

于 2015-06-16T12:31:06.590 回答