Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';使用fs写入文件后,无法读取该文件_Javascript_Node.js_Base64_Fs_Multiparty - Fatal编程技术网

Javascript Can';使用fs写入文件后,无法读取该文件

Javascript Can';使用fs写入文件后,无法读取该文件,javascript,node.js,base64,fs,multiparty,Javascript,Node.js,Base64,Fs,Multiparty,我想读一个图像,把它写在一个文件夹里,然后再读一遍,得到它的base64 我得到以下错误: 错误:eNote:没有这样的文件或目录,请访问“C:\Workspace\Project\upload\u storage\image.jpg” 在Object.accessSync(fs.js:192:3) 我的代码: const FS = require("fs"); var multiparty = require('multiparty'); var path = require('path');

我想读一个图像,把它写在一个文件夹里,然后再读一遍,得到它的base64 我得到以下错误: 错误:eNote:没有这样的文件或目录,请访问“C:\Workspace\Project\upload\u storage\image.jpg” 在Object.accessSync(fs.js:192:3)

我的代码:

const FS = require("fs");
var multiparty = require('multiparty');
var path = require('path');
function readAndWriteFile(file , newPath){
  FS.readFileSync(file.path, (err, data)=>{
      FS.writeFileSync(newPath, data, (err)=>{                                                                                                                
          });
  });
}
function base64Encode(path,filemime) {
    FS.readFileSync(path, {encoding: 'base64'}, (err, data)=>{
      if (err) {
        throw err;
      }
      return `data:${filemime};base64,${data}`;
    });
}

var form=new multiparty.form()
//使用多方表单检索文件
解析(请求、函数(错误、字段、文件){
var文件;
const documents=files.file;

对于(i=0;i不要对
\u fileSync
使用回调。但看起来您还是希望后面跟着:

你有没有试着阅读这些文档


更多阅读资料和示例,请参见,

不要将回调与
\u fileSync
一起使用。但看起来您还是希望后面跟着:

你有没有试着阅读这些文档


更多阅读和示例,请参见,

当您在回调中使用
readFileSync
时,您会立即返回函数-无论对
writeFileSync
的调用是否已完成,函数都会继续运行。这似乎是一个典型的例子。当您在回调中使用
readFileSync
时,无论对
writeFileSync
的调用是否完成,您都会立即返回该函数,该函数将继续运行。
          var form = new multiparty.Form()
          //retrieve files using multiparty form
          form.parse(req, function(err, fields, files) {
            var document;
            const documents = files.file; 

            for(i=0; i<documents.length; i++){
              document=documents[i];
              const contentType = String(document.headers["content-type"]);
              filePath = path.join(process.cwd(),'/upload_storage/',document.originalFilename);
              readAndWriteFile(document,filePath);
              // // convert image to base64 encoded string
              const base64str = base64Encode(filePath, contentType);
              console.log(base64str);
            }
         }

const fs = require('fs');

function readAndWriteFile(file , newPath){
  fs.copyFileSync(file.path, newPath);
  fs.unlinkSync(file.path)
}