【问题标题】:How can I save a file (in node.js) from memory to a specific location on the disk? [duplicate]如何将文件(在 node.js 中)从内存保存到磁盘上的特定位置? [复制]
【发布时间】:2020-01-05 14:07:17
【问题描述】:

我正在尝试将文件保存到服务器磁盘上的特定位置(使用multer),但此位置名称与我在请求中收到的数据以及文件相关。

我得出结论,我可以将文件保存在内存中,然后(在代码的其他部分完成后,我将生成我的位置名称)我会将文件保存到磁盘空间。这就是我卡住的地方 - 如何将 node.js 中的文件从内存中的对象保存到特定的磁盘位置?

这是我保存在内存中的对象:

{ fieldname: 'file',
  originalname: '20190221_171825.jpg',
  encoding: '7bit',
  mimetype: 'image/jpeg',
  buffer:
   <Buffer ff d8 ff e1 ... >,
  size: 5173060 }

【问题讨论】:

    标签: node.js file memory multer disk


    【解决方案1】:

    您可以使用JIMP 模块来移动或操作您的图像。

    【讨论】:

      【解决方案2】:

      TL:DR 通过fs module

      const fs = require('fs');
      const data = { fieldname: 'file',
        originalname: '20190221_171825.jpg',
        encoding: '7bit',
        mimetype: 'image/jpeg',
        buffer:
         <Buffer ff d8 ff e1 ... >,
        size: 5173060 };
      
      fs.writeFile("path/to/file", data, function(err) {
          if(err) {
              return console.log(err);
          }
          console.log("The file was saved!");
      }); 
      

      但老实说,您应该先检查other relevant questions,然后再在这里问一个新的。

      【讨论】:

      • 谢谢(也为指向类似的线程)。这对我帮助很大!我之前一定犯了某种错误,因为我尝试按照在 stackoverflow 上找到的步骤进行操作,但没有成功。现在它工作得很好。 ;) 但是你应该在你的答案中改变一件事 - 名为“数据”的常量应该只包含缓冲区的值,而不是整个文件对象。
      • “nodemon”导致的“reset”问题怎么办? github.com/remy/nodemon/issues/1509 这种方法不会重新启动节点,因为它正在“监视”文件更改吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多