多部分数据发送对象类型文件

时间:2017-08-10 16:28:58

标签: angular file multipartform-data primeng

我正在尝试将多个文件发送到我的其余API。 所以在我使用PrimeNG的html中,有:

<p-fileUpload #fileInput name="myfiles[]"  customUpload="true" (uploadHandler)="myUploader($event)"
                    multiple="multiple" accept="*" maxFileSize="2000000"
                    showUploadButton="false" cancelLabel="Annuler" chooseLabel="Choisir">            
</p-fileUpload>

在我的角度ts文件中,我正在调用我的其余API:

saveData(data, uploadedFiles): Observable<any> {
    let formData = new FormData();
    formData.append("uploadedFiles", uploadedFiles);
    formData.append("data",JSON.stringify(data));
    return this.http.post(apiUrl + "/" , formData)
      .catch(this.handleError);
  }

所以如果我记录uploadedFiles我得到:

enter image description here

如果我开发File我有:

enter image description here

所以我可以看到我已经正确地获得了我上传的文件。

但是当我发送POST请求时,我可以看到我发送的数据是: enter image description here

我认为这就是为什么在我的其余API中,当我尝试获取 fileNames 时,它们是null

以下是我实现其余API的方法:

    @POST
    @Path("/")
    @Consumes({MediaType.MULTIPART_FORM_DATA})
    public Response createClink(@FormDataParam("data") MyData myData,
                                @FormDataParam("uploadedFiles") List<FormDataBodyPart> bodyParts,
                                @FormDataParam("uploadedFiles") FormDataContentDisposition fileDispositions) {
        StringBuffer fileDetails = new StringBuffer("");
        /* Save multiple files */

        for (int i = 0; i < bodyParts.size(); i++) {
            BodyPartEntity bodyPartEntity = (BodyPartEntity) bodyParts.get(i).getEntity();
            String fileName = bodyParts.get(i).getContentDisposition().getFileName();
            System.err.println("fileName");
            System.err.println(fileName);

            //saveFile(bodyPartEntity.getInputStream(), fileName);  
       }            
    }

为什么我的文件对象没有正确发送?我怎样才能做到这一点 ? 还有其他错误吗?

0 个答案:

没有答案