gpt4 book ai didi

reactjs - 如何通过 api 在 react 中上传图片?

转载 作者:行者123 更新时间:2023-12-04 07:34:20 24 4
gpt4 key购买 nike

今天看了很多关于如何通过api在react中上传照片的教程。
我做了一切,尝试了所有方法。但最后我被卡住了。
(在整个解释中,我将只关注图像上传的功能)
在模型中,我有组和变量-

        [NotMapped]
public IFormFile ImageFile {get; set; }
在 api 我得到
  [Route ("Add")]
[HttpPost]
public void Post (Group group)
我在状态-
  const initialFieldValues ​​= {
GroupName: '',
GroupAbout: '',
imageName: '',
imageSrc: defaultImageSrc,
imageFile: null
}
const [values, setValues] = useState (initialFieldValues)
当改变图像有一个功能-
const handleImg = (e) => {
if (e.target.files && e.target.files [0]) {



let imageFile = e.target.files [0];
const reader = new FileReader ();
reader.onload = x => {
setValues ​​({
... values,
imageFile,
imageSrc: x.target.result
})
}
reader.readAsDataURL (imageFile)
SetDisplayImg ("block");
}
else {
setValues ​​({
... values,
imageFile: null,
imageSrc: defaultImageSrc
})
}

};
并且在提交表单时

const handleFormSubmit = e => {
e.preventDefault ()
const formData = new FormData ()
.append ('groupImage', values.imageFile)
addOrEdit (formData)
}



const addOrEdit = (formData) => {
axios.post ('api / groups / add', formData) .catch (error => {
console.log (error.response.data);
console.log (error.response.status);
console.log (error.response.headers);
});

}

在此代码 -制作 错误 415 (即使无论上传图像,但即使我只把它放在其他变量,得到字符串并正常工作。)
如果我添加 [FromForm] 在 api 中它 不回复我 ,即它不会给我写错误消息,也不会到达 api(我在调试中检查过)
如果我 更改 axios
const obj = {'groupImage': values.imageFile
}
    axios.post ('api / groups / add', obj) .catch (error =>
我收到一条错误消息 400-
“无法将 JSON 值转换为 System.String。路径:$ .groupImage
如果 我从状态发送值
axios.post('api/groups/add', values)
我收到一条错误消息 System.NotSupportedException:不支持接口(interface)类型的反序列化。键入“Microsoft.AspNetCore.Http.IFormFile”。路径:$ .imageFile |行号:0 | BytePositionInLine:6939781。
---> System.NotSupportedException:不支持接口(interface)类型的反序列化。键入“Microsoft.AspNetCore.Http.IFormFile”。
我尝试修复的任何内容都会导致另一个错误,我真的很茫然。
问候

最佳答案

>.append ('groupImage', values.imageFile)
首先,请确保 key您的 formdata object 可以匹配您的模型类属性的名称。
formData.append('imageName', values.imageName);
//...

//it should be imageFile, not groupImage
formData.append('imageFile', values.imageFile);
此外,请申请 [FromForm]属性到 Action 参数,如下所示。
public void Post([FromForm]Group group)
{
//...
测试结果
enter image description here

关于reactjs - 如何通过 api 在 react 中上传图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67807409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com