ホームページ >バックエンド開発 >PHPチュートリアル >クラッシュしました。プログラムを Java と C# から php に変更するのを手伝ってくれませんか。ありがとうございます。

クラッシュしました。プログラムを Java と C# から php に変更するのを手伝ってくれませんか。ありがとうございます。

WBOY
WBOYオリジナル
2016-06-23 14:01:56929ブラウズ

HttpClient oHttpClient = new HttpClient();	// make post-method        PostMethod post = new PostMethod(_sPostUri);        post.setRequestHeader("FileExt",sFileExt);        //post.setRequestHeader("Content-Type","multipart/form-data");        if (_btContent != null) {        	 ByteArrayRequestEntity entity = new ByteArrayRequestEntity(_btContents);             post.setContentChunked(true);             post.setRequestEntity(entity);        }        int httpResult = 0;        try {            httpResult = oHttpClient.executeMethod(post);            //获取返回值 文件名称            sfilename = post.getResponseBodyAsString();        } catch (Exception ex) {            post.releaseConnection();            System.out.println("提交数据时失败");        } finally {            post.releaseConnection();        }


temp_WebClient = new WebClient();temp_WebClient.Headers.Add("FileExt", "jpg");fileBytes = File.ReadAllBytes("c:\\1.jpg");responseArray = temp_WebClient.UploadData("http://localhost/fileuploader.do", "POST", fileBytes);resStr = Encoding.UTF8.GetString(responseArray);


两段程序都是向一个网址post一个文件,改怎么用php实现,求代码,谢谢!


回复讨论(解决方案)

如果要实现向一个网址post一个文件,php中可以用curl提交。你可以搜索一下用法。

试过了,报了一堆错,我对java是一窍不通,我测试提交到我的php服务器端一点问题都没有,可正式提交到另外一台java服务器的do文件后,就报错,几天了,郁闷死,求助。

$uploadFile = file_get_contents($filePath);//content boundary $boundary   = md5(time());$postStr  = "";$postStr .="--".$boundary."\r\n";$postStr .="Content-Disposition: form-data; name=\"\"; filename=\"a.txt\"\r\n";$postStr .="Content-Type: text/plain\r\n\r\n";$postStr .=$uploadFile."\r\n";$postStr .="--".$boundary."\r\n";                                                                                                                                            /** use curl instead **/$cl = curl_init($url);$boundary = md5(time());curl_setopt($cl,CURLOPT_POST,true);curl_setopt($cl,CURLOPT_HTTPHEADER,array(        "Content-Type: multipart/form-data; boundary=".$boundary));curl_setopt($cl,CURLOPT_POSTFIELDS,$postStr);curl_setopt($cl,CURLOPT_RETURNTRANSFER,true);$content = curl_exec($cl);curl_close($cl);echo $content;


java.lang.NullPointerExceptionjava.lang.NullPointerException	at com.trs.infra.support.file.FilesMan.getNextFileName(FilesMan.java:562)	at com.abs.infra.support.file.FilesMan.getNextFilePathName(FilesMan.java:679)	at com.abs.webframework.controler.servlet.FileUploader.service(FileUploader.java:77)	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)	at com.abs.webframework.controler.servlet.NoLoginServiceControler.service(NoLoginServiceControler.java:110)	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)	at com.abs.servlet.LoginCheckFilter.doFilter(LoginCheckFilter.java:107)	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)	at com.abs.cluster.ext.wcm.ClusterProxyFilter.doFilter(ClusterProxyFilter.java:65)	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)	at com.abs.infra.session.util.SessionFilterBase.doFilter(SessionFilterBase.java:73)	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)	at java.lang.Thread.run(Thread.java:619)

$file = realpath('gif/1.gif'); //要上传的文件$fields['f'] = '@'.$file;$ch = curl_init();  curl_setopt($ch, CURLOPT_URL, $url);  curl_setopt($ch, CURLOPT_POST, 1 );curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);curl_exec ($ch);  

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。