Javascript Can';使用fs写入文件后,无法读取该文件
我想读一个图像,把它写在一个文件夹里,然后再读一遍,得到它的base64 我得到以下错误: 错误:eNote:没有这样的文件或目录,请访问“C:\Workspace\Project\upload\u storage\image.jpg” 在Object.accessSync(fs.js:192:3) 我的代码: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');
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)
}