我正在尝试将多个文件发送到我的其余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
我得到:
如果我开发File
我有:
所以我可以看到我已经正确地获得了我上传的文件。
我认为这就是为什么在我的其余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);
}
}
为什么我的文件对象没有正确发送?我怎样才能做到这一点 ? 还有其他错误吗?