my reactjs代码正在调用上传-
uploadFiles = async () => {
const formData = new FormData();
for (let i = 0; i < this.state.selectedFiles.length; i++) {
formData.append(`upfile[${i}]`, this.state.selectedFiles[i]);
}
formData.forEach(item => console.log('loop item =>', item));
const response = await fetch(myend_pointURI + '/upMulFiles', {
method: 'POST',
headers: {
'Authorization': `Bearer ${Cookies.get('sarstoken')}`,
},
body: formData,
});
const resp = await response.json();
if (resp.resp === 'ok') {
this.refreshRecentItems();
}
}
Mynodejs代码-
app.post("/upMulFiles", jwt.authenticateToken, urlencodedParser, async function (req, res, next) {
const filepath = '/home/user675/Files/NewUpFiles';
try {
for (let key in req.files) {
let file = req.files[key]; // Access individual file details
console.log('file =>', file);
file.mv(`${filepath}/${file.name}`, function (err) {
if (err) {
return res.status(500).send(err);
}
});
}
} catch (err) {
console.log('=> try err', err);
res.send({ resp: 'err', details: err });
}
res.send({ resp: 'ok' });
});
app.use(
fileUpload({
useTempFiles: true,
safeFileNames: /\\/g,
preserveExtension: true,
tempFileDir: `${__dirname}/uploadspace/temp`
})
},这里, 保存延期:是的, PreserveStextension:使用SafeFileNames选项时,请保存文件名扩展名。如果设置为true,则将默认为3。 因此,要解决此问题,我需要定义一个用于保存的数字(在我的情况下4就足够了)
fix:
var app = express();
app.use(
fileUpload({
useTempFiles: true,
safeFileNames: /\\/g,
preserveExtension: 4,
tempFileDir: `${__dirname}/uploadspace/temp`
})
);