当文件名从image.jpeg错误更新为nodejs服务器中的imagej.peg?

问题描述 投票:0回答:1
当使用reactjs和nodejs作为我的服务器上传文件时,该文件名正在错误地更新

    Image.jpeg至imagej.peg
  • document.docxtodocumentd.ocx
  • Excelfile.xlsxtoExcelfeLilex.lsx
有人可以帮忙吗? 以下是我的代码片段和log.console屏幕截图供参考:

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' }); });
    
reactjs node.js file-upload
1个回答
0
投票
我发现了设置问题

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` }) );

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.