Javascript 复制到另一个文件夹时文件中出现错误
我有一个web应用程序,可以上载文件,将文件转换为tiff格式,拆分页面,并将其另存为一个文件。之后,我需要重命名这些文件并将它们复制到另一个文件夹中。 分割后的文件看起来很好,但当我将它们复制到另一个文件夹时,第一个文件被损坏,只有最后一个文件被正确移动 有人熟悉这种虫子吗?有什么建议可以避免吗 这是拆分页面的代码:Javascript 复制到另一个文件夹时文件中出现错误,javascript,node.js,file,fs,sharp,Javascript,Node.js,File,Fs,Sharp,我有一个web应用程序,可以上载文件,将文件转换为tiff格式,拆分页面,并将其另存为一个文件。之后,我需要重命名这些文件并将它们复制到另一个文件夹中。 分割后的文件看起来很好,但当我将它们复制到另一个文件夹时,第一个文件被损坏,只有最后一个文件被正确移动 有人熟悉这种虫子吗?有什么建议可以避免吗 这是拆分页面的代码: const path = require('path'); const fs = require('fs-extra'); const config = require('con
const path = require('path');
const fs = require('fs-extra');
const config = require('config');
const sharp = require('sharp');
const namingFolder = config.get('naming-folder');
module.exports = async function (file, dst, converted_file_path) {
const { dir } = path.parse(dst);
await fs.mkdir(dir, { recursive: true });
const recievedName = file.recievedName;
const fileFolder = `${namingFolder}\\${file.id}`;
const fileTiff = sharp(converted_file_path);
await fileTiff
.metadata()
.then(function (metadata) {
const pagesNum = metadata.pages;
if (pagesNum > 1) {
for (let i = 0; i < pagesNum; i++) {
const filename = `${recievedName}-${i}.${metadata.format}`
const filePath = `${fileFolder}\\${filename}`;
sharp(converted_file_path, { page: i }).toFile(filePath)
}
return
}
return fileTiff.toFile(`${fileFolder}\\${recievedName}.${metadata.format}`)
})
}
const config = require('config');
const path = require('path');
const fs = require('fs-extra');
const filesCounter = require('../../database/models/filesCounter');
const namingFolder = config.get('naming-folder');
const dispatchedFolder = config.get('dispatched-folder');
module.exports = async (file, failed) => {
const srcDirPath = `${namingFolder}\\${file.id}`
const files = await fs.readdir(srcDirPath);
if (!files || files.length === 0) {
throw new Error(`Dispatch failed, no files found.`);
}
files.sort();
const dest = path.join(dispatchedFolder, file.regNum);
if (!await fs.pathExists(dest)) {
await fs.mkdir(dest, { recursive: true });
}
let num = await filesCounter.reserveNumbers(files.length, file.regNum); /* the ending for file name
try {
files.map(file => {
const filePath = path.join(dest, `${file.regNum} - ${num++}${failed ? ' (failed)' : ''}.tiff`);
fs.copy(path.join(srcDirPath, file), filePath)
})
} catch (err) {
if (err.message === 'dest already exists.')
throw new Error('Untracked files at dispatch folder. Count incorrect.');
else throw err;
}
try {
await fs.rmdir(path.join(namingFolder, `${file.id}`));
}
catch (err) {
}