文章目录
思路:用fs.readdir得到当前文件夹的所有子文件和子文件夹,再用fs.stat里面的 isFile()和isDirectory() 去判断文件还是文件夹,注意是方法,然后去做相应的操作
注意应用 fs
(var path = require(‘path’);
var fs = require(‘fs’);)
var fs = require('fs');
var http = require('http');
var FormData = require('form-data');
dirpath:文件夹的路径(eg:D:\Program Files)
function fileDisplay(dirpath: any) {
fs.readdir(dirpath, (err: any, files: any) => {
if (err) {
console.log(err)
} else {
files.forEach((filename: any) => {
var filedir = dirpath + "\\" + filename;
console.log('asdf', filedir);
fs.stat(filedir, (error: any, stats: any) => {
if (error) {
console.log(error);
} else {
console.log("666:", stats);
var isFile = stats.isFile();
var isDir = stats.isDirectory();
if (isFile) {
sendFile(filedir)
}
isDir ? fileDisplay(filedir) : ''
}
})
})
}
})
}
/* filedir:文件的路径 */
const sendFile = (filedir: any) => {
var form = new FormData();
form.append('manyFolder', fs.createReadStream(filedir));//'file'是服务器接受的key
var headers = form.getHeaders();//这个不能少
// headers.Cookie = cookie;//自己的headers属性在这里追加
// debugger
let host = VITE_APP_URL.split('//')[1].split(':')[0]
let port = VITE_APP_URL.split('//')[1].split(':')[1].substring(0,4)
var request = http.request({
method: 'post',
host,
port,
path: '/fs/fileUpdate',
headers: headers
}, function (res: any) {
var str = '';
res.on('data', function (buffer: any) {
str += buffer;//用字符串拼接
// debugger
}
);
res.on('end', () => {
var result = JSON.parse(str);
console.log('suc',result);
message.success('上传成功')
// debugger
//上传之后result就是返回的结果
});
});
form.pipe(request);
}