通过jersey API添加非预定数量的文件及其各自的元数据

通过jersey API添加非预定数量的文件及其各自的元数据,jersey,metadata,multipart,multiple-file-upload,Jersey,Metadata,Multipart,Multiple File Upload,我正在开发一个Jersey API,它必须接受多个文件的输入以及关于它们的一些细节 例如,对于每个图像,都会有点击者的姓名、所属类别、拍摄照片的位置等。这必须在单个请求对象上完成 没有确定数量的文件,因此我无法创建不同的变量,如(文件1、摄影师1、类别1、位置1)、(文件2、摄影师2、类别2、位置2) 我将通过多部分接受列表中的文件 是否有一种有效的方法来获取图像的元数据,以便我们可以确定元数据对应于列表中的哪个文件/图像?为了获取某个文件的元数据,您可以参考以下链接: 获取元数据后,您可以编

我正在开发一个Jersey API,它必须接受多个文件的输入以及关于它们的一些细节

例如,对于每个图像,都会有点击者的姓名、所属类别、拍摄照片的位置等。这必须在单个请求对象上完成

没有确定数量的文件,因此我无法创建不同的变量,如(文件1、摄影师1、类别1、位置1)、(文件2、摄影师2、类别2、位置2)

我将通过多部分接受列表中的文件


是否有一种有效的方法来获取图像的元数据,以便我们可以确定元数据对应于列表中的哪个文件/图像?

为了获取某个文件的元数据,您可以参考以下链接:

获取元数据后,您可以编写一些函数来传递该信息,如下所示:

public void postMultipleFiles(List<String> fileNames, List<Object> metaData){
    FormDataMultiPart formDataMultiPart = new FormDataMultiPart();
    final List<FileDataBodyPart> l1 = new ArrayList<>();
    final List<FormDataMultiPart> l2 = new ArrayList<>();
    for (int i = 0; i < fileNames.size(); i++) {
        final FileDataBodyPart f1 = new FileDataBodyPart("file", new File("path to store" + fileNames.get(i)));
        l1.add(f1);
        final FormDataMultiPart m1 = (FormDataMultiPart) formDataMultiPart.field("metadata", metaData.get(i), MediaType.APPLICATION_JSON_TYPE).bodyPart(f1);
        l2.add(m1);
    }
    final Response response = prepareToSend(path).post(Entity.entity(l2.get(0), l2.get(0).getMediaType()));
} 
public void postMultipleFiles(列出文件名、列出元数据){
FormDataMultiPart FormDataMultiPart=新FormDataMultiPart();
最终列表l1=新的ArrayList();
最终列表l2=新的ArrayList();
对于(int i=0;i
注意:prepareToSend是一种返回简单函数生成器的方法 用于API请求(GET/POST/PATCH)等的java客户端


希望这有帮助。:)

是的,这是可能的。这就是multipart的用途:将文件与其他数据混合。这可能有助于Hi@Vaibhav_Sharma,您共享的链接不会显示多个文件。如果我们有一个文件列表,我们怎么知道元数据对应于哪个文件呢?