In [Android] Hochladen von Bildern vom Terminal auf den Server war die empfangende Seite Servlet. Ich wollte es unbedingt bei Jerjey erhalten, wusste aber nicht, was ich tun sollte, und machte Kompromisse. Ich habe diesmal herausgefunden, wie das geht, also werde ich es vorstellen.
Bitte laden Sie Folgendes herunter.
Pass den Weg durch diese beiden.
Mehrteilige / Formulardaten können derzeit noch nicht verwendet werden, also im Paket des Projekts, das Sie unterstützen möchten Erstellen Sie [ApplicationConfig.java] und kopieren Sie Folgendes und fügen Sie es ein.
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);
}
}
Bitte geben Sie den Namen des Pakets ein, das in "Paket" verwendet werden soll. Ändern Sie dann [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>
<!--Hier"pakage.ApplicationConfig"Ist der Pfad der oben erstellten Klasse.-->
<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>
Damit ist die Unterstützung von Mehrteil- / Formulardaten abgeschlossen.
Erstellen Sie die folgende Klasse.
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("Zielordner speichern",fileDisposition.getFileName()), REPLACE_EXISTING);
return "END";
} catch (IOException e) {
throw new WebApplicationException(e, 500);
}
}
}
Jetzt http: // localhost / XX / api / Upload / File Senden Sie die Datei an (XX ist der Paketname) und sie sollte gespeichert werden.
Laden Sie Dateien mit JAX-RS hoch! http://blog.yumix.net/entry/2012/12/17/002515
Jersey-Einstellungen 1 (web.xml, Anwendungsklasse usw.) https://edgegram.hatenablog.jp/entry/2015/11/25/160433
Java - JAX-RS HTTP mehrteilige Anfrage https://tutorialmore.com/questions-1757453.htm