【发布时间】:2020-07-10 20:31:15
【问题描述】:
我在使用 Java 将 React 多部分表单数据发送到后端 MySQL 时遇到问题。 当我在 Postman 中单独测试 React 和 Java 时,它工作正常。当我使用表单将用户数据和图片从前端发送到后端时,会出现问题,我收到无法识别的令牌错误。我对此错误进行了很多研究,但似乎找不到解决方案。请帮助我哪里出错了。
反应:
const [firstName, setFirstName] = useState()
const [lastName, setLastName] = useState()
const [email, setEmail] = useState()
const [phoneNumber, setPhoneNumber] = useState()
const [file, setFile] = useState()
const send = event => {
const data = new FormData()
data.append("user", firstName)
data.append("file", file)
Axios.post("/new/sale", data).then(res => console.log(res))
.catch(err => console.log(err))
}
控制器
@PostMapping(value = "/sale")
public ResponseEntity<Response> createPost(@RequestParam("file") MultipartFile file,
@RequestParam("user") String user)
throws IOException {
ObjectMapper obj = new ObjectMapper();
Sale sale = obj.readValue(user, Sale.class);
sale.setPicture(file.getBytes());
sale.setFileName(file.getOriginalFilename());
Sale sales = saleRepository.save(sale);
if(sales != null) {
return new ResponseEntity<Response>(HttpStatus.OK);
} else {
return new ResponseEntity<Response>(HttpStatus.BAD_REQUEST);
}
}
POJO
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String firstName;
private String lastName;
private String email;
private String phoneNumber;
private Date createdDate;
private Date updatedDate;
private byte [] picture;
private String fileName;
【问题讨论】:
-
我真的很好奇一些事情:你为什么将代码包含在屏幕截图中?将代码复制为文本不是更方便吗?有什么特别的原因吗?
标签: java reactjs spring-boot multipartform-data jackson-databind