Rumah  >  Artikel  >  Hantar JSON menggunakan fail imej dalam Posman

Hantar JSON menggunakan fail imej dalam Posman

WBOY
WBOYke hadapan
2024-02-09 16:24:08790semak imbas

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!

Kandungan soalan

Saya ingin menghantar fail json dengan imej dalam posmen tetapi saya mendapat ralat berikut:

"status": 415,
"error": "unsupported media type",

Pengawal Pakar

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);
    }
}

Perkhidmatan Pakar

@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

Penyelesaian

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam