一、本地指定路径创建文件夹
const path = require('path');
const fs = require('fs');
this.createdFolder({
devPath:'../../../database/userdb/OA_Files',
proPath:'../../../OA_Files'
});
createdFolder(pathData){
let folderPath;
if(process.env.NODE_ENV === 'development'){
folderPath = path.join(__dirname,pathData.devPath);
}else{
folderPath = path.join(__dirname,pathData.proPath);
}
if (!fs.existsSync(folderPath)){
fs.mkdir(folderPath,(err)=>{
console.log(err);
});
}
},
二、本地指定路径创建文件
const path = require('path');
const fs = require('fs');
export function creatFile() {
return new Promise(async resolve => {
let filePath = path.join(__dirname, `../userdb/OA_Files/oaid_${dbName}/${dbName}msg.db`);
try {
fs.readFileSync(filePath);
resolve({code: 200, message: '文件读取成功'});
} catch (e) {
fs.writeFileSync(filePath, '');
resolve({code: 200, message: '文件创建成功'});
}
})
}
三、接口返回文档流数据转成二进制并存入本地
const fs = require('fs');
imgFile({
url: '/filestorage/file/download.action',
method: 'get',
params: {id: fileData.fileId},
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
responseType: 'blob'
}).then(async res=>{
let blob = new Blob([res.data]);
let filePath;
if(process.env.NODE_ENV === 'development'){
filePath = path.join(__dirname, `../../../../database/userdb/OA_Files/oaid_${this.userInfo.id}/file/${fileData.fileName}`);
}else{
filePath = path.join(__dirname, `../../../OA_Files/oaid_${this.userInfo.id}/file/${fileData.fileName}`);
}
const buffer = Buffer.from(await blob.arrayBuffer());
fs.writeFileSync(filePath, buffer);
resolve(path.toNamespacedPath(filePath).replace('\\\\?\\',''));
})
四、打开本地文件目录
openFileCatalogue(){
try {
let filePath = 'C:\\Users\\admin\\Desktop\\重点案件 (2).xlsx';
fs.readFileSync(filePath);
const {shell} = require('electron');
shell.showItemInFolder(filePath);
}catch (e) {
console.log('文件不存在');
}
},