【问题标题】:Multiple file upload using Quarkus and RestEasy使用 Quarkus 和 RestEasy 上传多个文件
【发布时间】:2021-07-13 00:47:37
【问题描述】:

我正在尝试设置一个允许多个文件上传以及其他表单数据的端点。将此视为创建产品页面,您将在其中拥有几张产品图片以及其他信息。理想情况下,我想将请求映射到 POJO

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON)
@Path("/product/create")
public Response createProduct(@MultipartForm CreateProductRequest req)  {

还有 POJO:

@Data
public class CreateProductRequest {

@FormParam("name")
private String name;

@FormParam("description")
private String description;

@FormParam("tags")
private List<String> tags; 

@FormParam("img")
@PartType(MediaType.APPLICATION_OCTET_STREAM)
private List<InputStream> img; //Ideally I could use an object such as MultipartFile 
                               //that would give me access to the filename and MIME type

}

但这不起作用,我明白了:

java.lang.RuntimeException: RESTEASY007545: Unable to find a MessageBodyReader for media type:
image&#x2F;jpeg;charset=UTF-8 and class type java.util.List

如果我删除List,它可以正常工作。

似乎与List&lt;String&gt; tags 的问题相同

哪个抛出:

java.lang.RuntimeException: RESTEASY007545: Unable to find a MessageBodyReader for media 
type: text&#x2F;plain;charset=UTF-8 and class type java.util.List

我已经看到使用MultipartFormDataInput 的解决方法,但我真的想避免这种情况,因为请求 obj 非常大,并且手动映射它会非常乏味且容易出错。

我正在运行 Java 11,Quarkus 1.11.1.Final

非常感谢!

【问题讨论】:

    标签: java file-upload resteasy quarkus


    【解决方案1】:

    带有@MultipartForm 注释的POJO 不支持使用带有List 的文件

    【讨论】:

    • 看起来确实如此,但是,是否有任何替代方法可以将包含多个文件的多部分请求映射到 POJO ?
    • 您需要将每个文件指定为单独的字段
    猜你喜欢
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 2011-05-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    相关资源
    最近更新 更多