Rumah >Java >javaTutorial >Bagaimana untuk Muat Naik Fail dan Data JSON Secara serentak dalam Perkhidmatan Web RESTful Jersey?

Bagaimana untuk Muat Naik Fail dan Data JSON Secara serentak dalam Perkhidmatan Web RESTful Jersey?

Susan Sarandon
Susan Sarandonasal
2024-12-06 14:44:11752semak imbas

How to Upload a File and JSON Data Simultaneously in a Jersey RESTful Web Service?

Muat Naik Fail Bersama Objek Lain dalam Perkhidmatan Web RESTful Jersey

Masalah:

Anda ingin mencipta rekod pekerja dengan imej dan data pekerja dalam satu panggilan API REST menggunakan Jersey, tetapi pelaksanaan semasa menimbulkan ralat dalam Chrome Posmen.

Jawapan:

Untuk mendayakan muat naik fail serentak dan penghantaran data JSON, data JSON mesti disertakan dalam permintaan berbilang bahagian. Berikut ialah versi ubah suai bagi coretan kod anda:

@POST
@Path("/upload2")
@Consumes({MediaType.MULTIPART_FORM_DATA})
public Response uploadFileWithData(
        @FormDataParam("file") InputStream fileInputStream,
        @FormDataParam("file") FormDataContentDisposition contentDispositionHeader,
        @FormDataParam("emp") Employee emp) {

//..... business login

}

Perubahan utama ialah penambahan @FormDataParam("emp") untuk memasukkan data pekerja dalam permintaan berbilang bahagian.

Nota Tambahan:

  • Jika anda menghadapi ralat "Tiada sumber suntikan ditemui untuk parameter daripada jenis public javax.ws.rs.core.Response" semasa menggunakan kod baharu, pastikan konfigurasi Jersey yang betul untuk mengendalikan permintaan berbilang bahagian disediakan dalam kod pelayan anda.
  • Sesetengah pelanggan REST, seperti penyemak imbas keupayaan FormData lalai, mungkin tidak menyokong tetapan Jenis Kandungan untuk bahagian berbilang bahagian individu. Untuk menangani perkara ini, anda boleh menetapkan Jenis Kandungan secara eksplisit untuk bahagian JSON sebelum menyahsiri data pada bahagian pelayan:
@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);
}

Atas ialah kandungan terperinci Bagaimana untuk Muat Naik Fail dan Data JSON Secara serentak dalam Perkhidmatan Web RESTful Jersey?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn