1

Es tut mir leid für mein schlechtes Englisch :(Bilder beschädigt sind mit Frühlings- und Feign Kunde

I Bilddatei mit Feign-Client hochladen möchten, aber die Bilder werden auf dem Server App beschädigt.

// CLIENT APP 
@FeignClient(name = "media-client", url = "${api.base-path}/media") 
public interface MediaClient { 
    @PostMapping 
    String uploadMedia(@RequestPart("file") MultipartFile file); 
} 

// SERVER APP 
@PostMapping(consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
String uploadMedia(@RequestPart MultipartFile file) throws IOException { 
    Files.copy(file.getInputStream(), Paths.get("/home/m/Desktop").resolve(UUID.randomUUID().toString() + ".jpg")); 
    return null; 
} 

gleiches Bild gespeichert mit Client-Anwendung und Server-Anwendung aber das Ergebnis ist wie folgt:.?.

https://i.stack.imgur.com/xbiPS.png

Was ist falsch Bitte helfen Sie mir

+0

Ich vermute, dass Sie diese Datei lokal getestet haben, sie ist vor dem Upload nicht beschädigt? – sniperd

+0

@sniperd Ja, ich habe die Datei lokal getestet. Es ist nach dem Upload beschädigt. – mkrgl

Antwort

0

Ich empfehle, Feign Encoder für Multipart/Form-Datenformen zu verwenden. Schritte:

Zuerst Fügen Sie diese Abhängigkeit zu Ihrem Projekt pom.xml-Datei:

<dependency> 
    <groupId>io.github.openfeign.form</groupId> 
    <artifactId>feign-form</artifactId> 
    <version>2.2.1</version> 
</dependency> 

Dann fügen Sie diese Konfiguration:

@Configuration 
public class FeignClientConfiguration { 
    @Bean 
    @Primary 
    @Scope("prototype") 
    public Encoder encoder() { 
     return new SpringFormEncoder(); 
    } 
} 

und Ihre Anmerkung ändern:

@FeignClient(name = "media-client", url = "${api.base-path}/media", configuration = FeignClientConfiguration.class) 
+0

Hallo @ Shchipunov. Danke für deine Antwort. Ich habe diese Abhängigkeiten bereits hinzugefügt. Dateien werden hochgeladen, aber in der Server-App beschädigt. – mkrgl

Verwandte Themen