npm 使用multer上传包对希腊字符进行错误编码

2w2cym1i  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(87)

当上传文件时,字符是希腊字母,上传的标题保存为希腊字母和希腊字母。
以下是js中的multer变量:

const storage = multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  },
  filename: function (req, file, callback) {
    callback(null, file.originalname);
  }
});
var limits = {
  files: 100,
  fileSize: 50000000
};
var upload = multer({
  storage: storage,
  fileFilter: function (req, file, callback) {
    var ext = path.extname(file.originalname);
  if (ext !== '.mp3' && ext !== '.wav' && ext !== '.m4a' && ext !== '.flac' && ext !== '.aac') {
      return callback(new Error('You can only upload audio files.'))
    }
    callback(null, true)
  },
  limits: limits
}).any('file');

字符串
我发现这个代码req.files[0].originalname = Buffer.from(req.files[0].originalname, 'latin1').toString('utf-8');,但我不能修改我现有的代码,并收到错误,无论是从缓冲区或其他一些参数。

kupeojn6

kupeojn61#

最后尝试了以下方法,解决了我的问题:

const utf8Filename = Buffer.from(file.originalname, 'latin1').toString('utf-8');
callback(null, utf8Filename);

字符串

相关问题