Im play website, können Sie den folgenden Code für Sie zu implementieren, was Sie wollen. Beachten Sie, dass das Dokument für Play-Version von 2.5.X ist
import play.mvc.Http.MultipartFormData.*;
//the file you want to post
Source<ByteString, ?> file = FileIO.fromFile(new File("hello.txt"));
//generate the right format for posting
FilePart<Source<ByteString, ?>> fp = new FilePart<>("hello", "hello.txt", "text/plain", file);
DataPart dp = new DataPart("key", "value");// the data you want to post
ws.url(url).post(Source.from(Arrays.asList(fp, dp)));
Update: Das erste, was Sie wissen sollten ist, dass ws
auf com.ning.http.AsyncHttpClient
gebaut wird. Wie sich Play Document, bezieht, unterstützt die ws
von play 2.4.*
Multi-Form-Upload nicht direkt. Sie können den zugrunde liegenden Client AsyncHttpClient
mit RequestBuilder.addBodyPart verwenden. Der folgende Code kann Erfüllung, was Sie wollen
import com.ning.http.client.AsyncHttpClient
import com.ning.http.client.multipart.FilePart
AsyncHttpClient myClient = ws.getUnderlying();
FilePart myFilePart = new FilePart("myFile", new java.io.File("test.txt"))
myClient.preparePut("http://localhost:9000/index").addBodyPart(filePart).execute.get()
haben ein gutes Glück
Sind Sie versuchen, Formulardaten und Datei im selben Antrag zu stellen? Oder Sie möchten nur eine Datei senden? – Salem
"versucht, Formulardaten UND Datei in derselben Anfrage einzureichen" - ja. justlike im Briefträger zum Beispiel – Anirudh