PHP Editor Xigua akan memperkenalkan anda cara menggunakan fail imej untuk menghantar JSON dalam Posman. Posman ialah alat pembangunan API yang berkuasa yang boleh membantu pembangun melakukan ujian antara muka dan penyahpepijatan. Biasanya, kami menggunakan Posman untuk menghantar data JSON, tetapi bagaimana jika kami perlu memasukkan fail imej dalam JSON? Artikel ini akan memperkenalkan secara terperinci cara melaksanakan fungsi ini dalam Posman melalui beberapa langkah mudah, membolehkan anda menggunakan Posman untuk ujian antara muka dengan lebih fleksibel. Sama ada anda seorang pemula atau pembangun berpengalaman, anda akan mendapat petua dan pengetahuan praktikal daripada artikel ini. Mari kita ketahui bersama!
Saya ingin menghantar fail json dengan imej dalam posmen tetapi saya mendapat ralat berikut:
"status": 415, "error": "unsupported media type",
package com.shayanr.homeservicespring.controller; import com.shayanr.homeservicespring.entity.users.expert; import com.shayanr.homeservicespring.service.expertservice; import lombok.requiredargsconstructor; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.multipartfile; import java.io.file; import java.io.ioexception; @restcontroller @requestmapping("/expert") @requiredargsconstructor public class expertcontroller { private expertservice expertservice; @postmapping("/register") public void register(@requestbody expert expert, @requestparam("image") multipartfile image) throws ioexception { expertservice.signup(expert, image); } }
@override @transactional public expert signup(expert expert, multipartfile image) throws ioexception { if (expert == null) { throw new nullpointerexception("null expert"); } if (!validate.namevalidation(expert.getfirstname()) || !validate.namevalidation(expert.getlastname()) || !validate.emailvalidation(expert.getemail()) || !validate.passwordvalidation(expert.getpassword())) { throw new persistenceexception("wrong validation"); } string extension = filenameutils.getextension(image.getname()); if (extension.equalsignorecase("video") || extension.equalsignorecase("mp4")) { throw new persistenceexception("invalid image format. only image files are allowed."); } expert.setconfirmation(confirmation.new); byte[] imageinbytes = image.getbytes(); expert.setimage(imageinbytes); expertrepository.save(expert); return expert; }
Di posmen baris pertama saya ialah json dan fail json ini
{ "firstName": "Sasa", "lastName": "Weel", "email": "[email protected]", "password": "Sasasd1@", "signUpDate": "2024-01-31", "signUpTime": "10:00:00" }
Dalam baris kedua saya menetapkan imej di mana masalahnya
Parameter @requestparam("image") multipartfile image
anda kelihatan betul.
Jadi perkara seterusnya yang perlu anda lakukan ialah pastikan anda memberitahu spring bahawa anda ingin membenarkan fail berbilang bahagian.
Ini adalah contoh application.properties
Konfigurasi:
spring.servlet.multipart.enabled=true
Tetapan konfigurasi tambahan untuk mengawal saiz muat naik:
# Adjust these file size restrictions and location as nessessary spring.servlet.multipart.max-file-size=2MB spring.servlet.multipart.max-request-size=10MB spring.servlet.multipart.location=/temp
Saya mengesyaki parameter @requestbody expert expert
sepatutnya ada kaitan dengan ini.
Atas ialah kandungan terperinci Hantar JSON menggunakan fail imej dalam Posman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!