Dans [Android] Téléchargement d'images du terminal au serveur, le côté récepteur était Servlet. Je voulais vraiment le recevoir à Jerjey, mais je ne savais pas quoi faire et j'ai fait un compromis. Cette fois, j'ai en quelque sorte compris comment le faire, alors je vais le présenter.
Veuillez télécharger ce qui suit.
Passez le chemin à travers ces deux.
Tel quel, multipart / form-data ne peut pas encore être utilisé, donc dans le package du projet que vous souhaitez prendre en charge Créez [ApplicationConfig.java] et copiez et collez ce qui suit.
ApplicationConfig.java
package com.Sample.api;
import org.glassfish.jersey.media.multipart.MultiPartFeature;
import org.glassfish.jersey.server.ResourceConfig;
public class ApplicationConfig extends ResourceConfig {
public ApplicationConfig() {
packages("pakage").register(MultiPartFeature.class);
}
}
Veuillez saisir le nom du package à utiliser dans "package". Puis modifiez [Web.xml].
Web.xml
<servlet>
<servlet-name>jersey-app</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<!--Ici"pakage.ApplicationConfig"Est le chemin de la classe créé ci-dessus.-->
<param-value>pakage.ApplicationConfig</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.media.multipart.MultiPartFeature</param-value>
</init-param>
</servlet>
Ceci complète la prise en charge des données multipart / formulaire.
Créez la classe suivante.
Upload.java
import static java.nio.file.StandardCopyOption.*;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.MediaType;
import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
import org.glassfish.jersey.media.multipart.FormDataParam;
@Path("/Upload")
public class Upload {
@POST
@Path("/File")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String upload(@FormDataParam(value = "file") InputStream fileStream,
@FormDataParam(value = "file") FormDataContentDisposition fileDisposition) {
try {
Files.copy(fileStream, Paths.get("Enregistrer le dossier de destination",fileDisposition.getFileName()), REPLACE_EXISTING);
return "END";
} catch (IOException e) {
throw new WebApplicationException(e, 500);
}
}
}
Maintenant http: // localhost / XX / api / Upload / File Envoyez le fichier à (XX est le nom du package) et il doit être enregistré.
Téléchargez des fichiers avec JAX-RS! http://blog.yumix.net/entry/2012/12/17/002515
Paramètres de Jersey 1 (web.xml, classe Application, etc.) https://edgegram.hatenablog.jp/entry/2015/11/25/160433
java - Requête HTTP multipart JAX-RS https://tutorialmore.com/questions-1757453.htm