Muat Naik Fail dengan Data Tambahan dalam Perkhidmatan Web RESTful Jersey
Untuk mencapai muat naik fail bersama-sama dengan data objek lain dalam satu panggilan REST, ubah suai kaedah muat naikFileWithData seperti berikut:
@POST @Path("/upload2") @Consumes({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response uploadFileWithData( @FormDataParam("file") InputStream fileInputStream, @FormDataParam("file") FormDataContentDisposition contentDispositionHeader, @FormDataParam("emp") String employeeJson) { // Deserialize the employee data from JSON JacksonJsonProvider provider = new JacksonJsonProvider(); Employee emp = provider.readFrom(Employee.class, employeeJson); // ...business logic... }
Kunci Mata:
Penyelesaian Masalah Posmen:
Posmen tidak boleh menetapkan Jenis Kandungan secara automatik untuk bahagian badan individu. Untuk membetulkannya:
Alternatif Penyelesaian:
Sebagai alternatif, anda boleh menetapkan Jenis Kandungan secara eksplisit dalam kaedah REST anda:
@POST @Path("/upload2") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFileAndJSON( @FormDataParam("emp") FormDataBodyPart jsonPart, @FormDataParam("file") FormDataBodyPart bodyPart) { jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE); Employee emp = jsonPart.getValueAs(Employee.class); // ...business logic... }
Nota:
Jika anda menggunakan Penyambung yang berbeza daripada HttpUrlConnection, anda mungkin menghadapi masalah seperti yang dibincangkan dalam ulasan yang berkaitan.
Atas ialah kandungan terperinci Bagaimana untuk Muat Naik Fail dengan Data JSON Tambahan dalam Perkhidmatan Web RESTful Jersey?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!