我试图从前端获取一个Json对象。这代表了一个过程。课程有一个现场徽标,即课程的图像。在我的控制器中,我有以下方法:
@PostMapping(value="/register-course", consumes = "multipart/form-data" )
html" target="_blank">public Response courseCreated(@RequestBody @Valid CourseCreatedRequest courseCreatedRequest, @RequestPart(value = "logo") MultipartFile file) throws IOException {
return Response.ok().setPayload(registerCours(courseCreatedRequest, file));
}
private CourseDto registerCours(CourseCreatedRequest courseCreatedRequest, MultipartFile file) throws
IOException {
CourseDto courseDto = new CourseDto()
.setCourseName(courseCreatedRequest.getCourseName())
.setCourseDescription(courseCreatedRequest.getCourseDescription())
.setCoursePrice(courseCreatedRequest.getCoursePrice())
.setIsCourseActive(courseCreatedRequest.getIsCourseActive())
.setIsCourseFree(courseCreatedRequest.getIsCourseFree())
.setLogo(file.getBytes());
return courseService.createNewCourse(courseDto);
}
在服务层中,我有压缩(在DB中放置图像时)和取消压缩(在将图像渲染回fend时)的逻辑:
@PrePersist
public CourseDto createNewCourse(CourseDto newCourseDto) {
Courses course = courseRepositoryDao.findByCourseName(newCourseDto.getCourseName());
if (course == null) {
course = new Courses()
.setCourseName(newCourseDto.getCourseName())
.setCourseDescription(newCourseDto.getCourseDescription())
.setCoursePrice(newCourseDto.getCoursePrice())
.setIsCourseFree(newCourseDto.getIsCourseFree())
.setIsCourseActive(newCourseDto.getIsCourseActive())
.setLogo(compressZLib(newCourseDto.getLogo()))
;
return CourseMapper.toUserDtoFreeCourses(courseRepositoryDao.save(course));
}
throw exception(EntityType.NEWCOURSE, ExceptionType.DUPLICATE_ENTITY, newCourseDto.getCourseName());
}
当我通过POSTMAN将带有徽标字段的JSON作为图像文件发送时,我得到415错误-未支持的媒体类型。
我错在哪里?我想我需要更换我的控制器,但如何更换呢?我需要从JSON with MultipartFile类中获取图像?
更新:我在正文中发送了JSON和一个文件,我认为这就是问题所在。我需要在控制器中放入MultipartFile。
我已经跟随其他答案,仍然有415个错误。在邮递员中,我离开了内容类型,没有任何价值。
对我来说,我是如何做类似的事情的:在后端(Spring):
@PostMapping(path = "/{your-route-goes-here}", consumes = "multipart/form-data")
public Course addCourse(@RequestPart(required = false, name = "file") MultipartFile file, @RequestPart("course") Course course) {
// do stuff here
}
在前端javascript中(带有axios用于超文本传输协议请求):
const course = {
"property": "value"
}
const formData = new FormData();
formData.append("file", file);
formData.append("course", course);
axios
.post("/your-route-goes-here", formData)
// etc
请查看图片以供参考:
“课程”模式:
在我的控制器中,我有一个用以下映射映射的方法:@PostMapping(“/”)。 此方法需要一个我试图捕获的请求主体,如下所述: 使用这两种方法对我来说都很好,我只是进退两难,如果直接在实体类中接受请求体是一个好主意和最佳实践的话。 我不想在controller类中公开我的实体类,因为我不确定这是否是一个好主意。 java 这两种方法都给出了相同的结果,更多的是关注要遵循的最佳实践。
问题内容: 在Python中,该类充当所有(新样式)类的根超类。至少默认情况下,将和应用于的任何子类的“类实例”会产生相同的结果: 我想定义一个的子类,例如,它在每种方式上都是相同的,除了对自身和产生不同的输出: 有没有办法在Python中做到这一点? PS:我知道特殊的方法,但是据我了解,如果类重写,则仅当在的实例上调用时才调用覆盖方法,而不是在自身上调用时。即: 问题答案: 实际上,与对象实例
问题内容: 使用SceneBuilder。我有2个阶段,每个阶段都有一个控制器: , 。 Stage1Controller: Stage2Controller: 这是使用2种方法 (称为in 方法)将这两个fxml文件加载到Main.java类中的方式: 该方法在第一阶段中用作方法,它在两个阶段都转换视图。 如何输入方法?谢谢 问题答案: “快速又脏”的方法是给的引用: 现在在您的主应用程序中:
我在我的web.xml中打开了Jersey JSON POJOsMappingFeature特性,如下所示,以便在POJO和JSON之间进行转换: 我在其中一个控制器中有一个处理文件上传的方法。它接受多部分表单数据,从表单中提取文件输入字段,将其转换为InputStream并将文件保存到磁盘: 这适用于所有文件格式,除非我尝试上传JSON文件,formFile.getValueAs(InputSt
我试图实现一个接受泛型参数的函数定义,只要它扩展了另一个特定的泛型类型。简言之参数A必须扩展参数B,其中A和B都是泛型的。 下面是我的示例 用法示例如下 一些封闭的班级 和函数调用 我不想在抽象类声明中定义E,因为T已经在那里定义了。 我也试着做了以下几点: 将myList定义为接受扩展T的键 将E定义为T类型(无法找到如何指定它在函数中扩展T 但它从来都不起作用。有没有办法做到这一点?我在Sta
我正在使用JavaFX8开发一个Java8桌面应用程序。 我在MainApp类(扩展application类的类)中有这个方法。 我会这样使用它: 有什么方法可以实现这种行为吗?