Я хочу построить поддержку fileupload с помощью Jersey (2.22.2) & JaxRs.Многостраничные формы не работают с Джерси и JaxRs
Это мое приложение:
@ApplicationPath("rest")
public class DsmJaxRsApplication extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> classes = new HashSet<>();
classes.add(FileUploadResource.class);
classes.add(MultiPartFeature.class);
return classes;
}
}
Это мой метод ресурсов для перехвата запроса POST:
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.TEXT_PLAIN)
@Path("upload")
public Response uploadImportFile(@FormDataParam("reason") String reason,
@FormDataParam("fileName") String fileName,
@FormDataParam("file") InputStream fileContent) {
checkCreateBulkChangeAllowed();
return Response.ok().build();
}
И это мой запрос полезная нагрузка:
------WebKitFormBoundaryAh9J98cKgsOv6WCr
Content-Disposition: form-data; name="reason"
wwwww
------WebKitFormBoundaryAh9J98cKgsOv6WCr
Content-Disposition: form-data; name="fileName"
DSM_CH_Bulk_new.xlsx
------WebKitFormBoundaryAh9J98cKgsOv6WCr
Content-Disposition: form-data; name="file"; filename="DSM_CH_Bulk_new.xlsx"
Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
------WebKitFormBoundaryAh9J98cKgsOv6WCr--
Проблема заключается в том, что внутри метода используются как fileContent
, так и reason
co ntain "wwww", который должен быть причиной, и fileName
всегда null
. Кто-нибудь знает, что я делаю неправильно или что мне здесь не хватает?
Пробовал с ' FormDataContentDisposition', и этот объект также является нулевым, вы можете предоставить мне конфигурацию web.xml, возможно, я смогу понять это. – Marius
@Marius Я обновил свой ответ. Также я видел людей, использующих конечный объект FormDataMultiPart. ваш метод ресурса должен выглядеть следующим образом: public Response uploadImportFile (конечный объект FormDataMultiPart) {....} –