Wednesday 15 February 2012

java - Send a file to server program written in PHP via JavaFX -



java - Send a file to server program written in PHP via JavaFX -

i have client programme written in javafx.

i want send text file selected filechooser server (written in php) using http post method.

how supposed accomplish this?

you don't need javafx this. can handled via java.

a simple way it, utilize httpurlconnection , create post request url mentioned.

you can utilize apache httpclients library same, less code :)

i have created simple mcve, httpurlconnection show how works, can play it.

import java.io.bufferedreader; import java.io.dataoutputstream; import java.io.file; import java.io.filereader; import java.io.inputstreamreader; import java.net.httpurlconnection; import java.net.url; import javafx.application.application; import javafx.event.actionevent; import javafx.geometry.pos; import javafx.scene.scene; import javafx.scene.control.button; import javafx.scene.control.label; import javafx.scene.layout.vbox; import javafx.stage.filechooser; import javafx.stage.filechooser.extensionfilter; import javafx.stage.stage; public class charts extends application { file file = null; @override public void start(stage stage) { button choosefile = new button("choose file"); button sendfile = new button("send file"); label filelabel = new label(); label label = new label(); filechooser filechooser = new filechooser(); choosefile.setonaction((actionevent e) -> { configurefilechooser(filechooser); file tempfile = filechooser.showopendialog(stage); if (tempfile != null) { setfile(tempfile); filelabel.settext("file : " + tempfile.getname() ); } else { filelabel.settext("no file chosen"); } }); sendfile.setonaction((actionevent e) -> { if (file != null) { int response = sendfiletohttp(file); label.settext("response returned : " + string.valueof(response)); } else { label.settext("please take file"); } }); vbox vbox = new vbox(); vbox.setalignment(pos.center); vbox.setspacing(15); vbox.getchildren().addall(choosefile,filelabel, sendfile, label); scene scene = new scene(vbox, 300, 300); stage.setscene(scene); stage.show(); } private void configurefilechooser(final filechooser filechooser) { filechooser.settitle("open resource file"); filechooser.getextensionfilters().addall( new extensionfilter("text files", "*.txt"), new extensionfilter("all files", "*.*")); filechooser.setinitialdirectory( new file(system.getproperty("user.home")) ); } private int sendfiletohttp(file file) { int responsecode = 0; seek { url url = new url("http://adirascala.site50.net/index.php"); httpurlconnection conn = (httpurlconnection) url.openconnection(); //set request type post conn.setrequestmethod("post"); //send text info conn.setrequestproperty("content-type", "text/plain"); //replace file-path local file-path bufferedreader br = new bufferedreader(new filereader(file)); stringbuffer info = new stringbuffer(); string templine; while ((templine = br.readline()) != null) { data.append(templine); } br.close(); // send post request conn.setdooutput(true); dataoutputstream wr = new dataoutputstream(conn.getoutputstream()); wr.writebytes(data.tostring()); wr.flush(); wr.close(); //fetch response code responsecode = conn.getresponsecode(); //read response bufferedreader in = new bufferedreader( new inputstreamreader(conn.getinputstream())); string inputline; stringbuffer response = new stringbuffer(); while ((inputline = in.readline()) != null) { response.append(inputline); } in.close(); } catch(exception e) { e.printstacktrace(); } //return response code homecoming responsecode; } private void setfile(file tempfile) { this.file = tempfile; } public static void main(string[] args) { launch(); } }

java http-post javafx-8

No comments:

Post a Comment