Shu*_*Raj 5 multipartform-data node.js reactjs axios
我正在构建一个博客生成器,我需要在 onChange 事件中选择图像时上传图像,并且上传图像的 url 需要在状态中更新。
在发布图像上传请求后。组件会自动刷新,所选文件和状态也会刷新。
如何阻止组件刷新和 setState 来更新图像的正确 url..
handleChange = async (event) =>
{
event.preventDefault();
if(event.target.name == 'file')
{
var x=event.target.files[0]
var y= event.target.name
let formData = new FormData();
formData.append('file',x)
const response = await axios.post('http://localhost:8009/post/image',formData,{
headers: {
'Content-Type': 'multipart/form-data'
}
})
let {data} = await response
console.log(data)
let file1 = data.name
this.setState({
content:{
key:uuid(),
name:y,
file:file1,
content:URL.createObjectURL(x)
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
图像的形式如下:
<input type="file" name="file" className="form-control-file" onChange={this.handleChange} required/>
Run Code Online (Sandbox Code Playgroud)
节点上的后端:
router.post('/image',(req,res)=>
{
console.log(req)
let file = req.files.file;
filename = Date.now() + '-' + file.name;
file.mv(`./client/public/uploads/${filename}`, (err)=>{
if(err) throw err;
});
console.log(`/uploads/${filename}`);
res.json({name:`/uploads/${filename}`})
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3959 次 |
| 最近记录: |