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
Lepaskan: 2024-12-06 14:44:11
asal
719 orang telah melayarinya

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

}
Salin selepas log masuk

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);
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan