【问题标题】:Error when using mv module to rename a file with buffer data使用 mv 模块重命名带有缓冲区数据的文件时出错
【发布时间】:2023-03-11 22:02:02
【问题描述】:

我正在为 express js 使用 mv 模块,但在将上传的文件保存到我选择的某个目录时遇到问题。

当我访问我的文件数据时,我有以下信息:

fieldname : 'file',
originalname : ....,
encoding :7bit,
mimetype 'image/jpeg',
buffer : <Buffer ff d8 ff e1 ...>

当我使用 mv 执行以下操作时:

   mv( req.file.buffer , path.normalize(__dirname+'/public/uploads/'+ p._id +'.jpg'), {mkdirp: true} ,function(err){
            if(err) console.log(err);
            res.json({});
        });

我看到一条错误消息:

"Path must be a string without null bytes."

我做错了什么?我该如何解决?

【问题讨论】:

  • mv('source/file', 'dest/file' - 您应该将缓冲区保存到文件中)。

标签: node.js express mv


【解决方案1】:
var fs = require('fs');
var OS = require('os');
var path = require('path');

var tmpPath = path.join(OS.tmpdir(), Date.now());

//saving file to tmp dir with random name
fs.writeFile(tmpPath, req.file.buffer, function(err) {
  if (err) {
    return res.error(err);
  }
  //moving file somewhere else
  mv(tmpPath, path.normalize(__dirname+'/public/uploads/'+ p._id +'.jpg'), {mkdirp: true} ,function(err){
        if(err) console.log(err);
        res.json({});
    });
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 2019-08-13
    • 1970-01-01
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    相关资源
    最近更新 更多