ホームページ  >  記事  >  バックエンド開発  >  PHPでWebServiceを呼び出してファイルをアップロードする方法

PHPでWebServiceを呼び出してファイルをアップロードする方法

WBOY
WBOYオリジナル
2016-06-20 12:36:291596ブラウズ

当社ではOAの二次開発を行う必要があるため、Javaを使用してOAを開発しています!ファイルをアップロードするためのインターフェイスが用意されています。私は C# のことを知りませんし、PHP の初心者でもあるので、ファイルをアップロードする方法がわかりません。 !
以下にドキュメントを添付します。

uploadService ファイル アップロード サービスを観察して学習できるように、マスターまたはモデレータがそれを PHP 言語に変換するのを手伝ってくれます。
リクエスト パス: /seeyon/uploadService.do?method= processUploadService

パラメータ:
トークン文字列 ログイン検証後に取得された ID トークン。
senderLoginName 文字列イニシエーターのログイン名を取得できます。

戻り値: 文字列
成功すると、生成された添付ファイル ID が返されます。複数のファイルがアップロードされる場合は、「」で区切られます。 |" シンボルと返された

C# の例:

URL preUrl = null;      URLConnection uc = null;      preUrl = new URL("http://XXX.XXX.XXX.XXX/seeyon/uploadService.do?      method = processUploadService"          +"&senderLoginName="+"zy"          +"&token="+"997a7cdc-2399-47e8-991e-96c859cccc7f");      String s = parameters.toString();      uc = preUrl.openConnection();      HttpURLConnection hc = (HttpURLConnection) uc;      hc.setDoOutput(true);      hc.setUseCaches(false);      hc.setRequestProperty("contentType", "charset=utf-8");      hc.setRequestMethod("POST");      BufferedInputStream  input=new BufferedInputStream(new FileInputStream("c:/LDAP集成设计文档.doc"));      String BOUNDARY = "---------------------------7d4a6d158c9"; // 分隔符      String fileName="LDAP集成设计文档.doc";      StringBuffer sb = new StringBuffer();      sb.append("--");      sb.append(BOUNDARY);      sb.append("\r\n");      sb.append("Content-Disposition: form-data; \r\n name=\"1\"; filename=\""+fileName+"\"\r\n");      sb.append("Content-Type: application/msword\r\n\r\n");      hc.setRequestProperty("Content-Type",          "multipart/form-data;boundary=" + "---------------------------7d4a6d158c9");      byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();      DataOutputStream dos = new DataOutputStream(hc.getOutputStream());      dos.write(sb.toString().getBytes("utf-8"));      int cc=0;      while((cc=input.read())!=-1)      {          dos.write(cc);      }      dos.write(end_data);      dos.flush();      dos.close();      FileOutputStream file = new FileOutputStream("c:/test.txt");      InputStream is = hc.getInputStream();      int ch;      while ((ch = is.read()) != -1) {           file.write(ch);      }      if (is != null)      is.close();


ディスカッション (解決策) への返信

sock ファイルのアップロードを検索

sock ファイルのアップロードを検索


こう言う人もいます

100 ポイントを得るために、インターネットからコードをコピーしないでください。

私は次のことしか知りませんでした。 PHP 4 か月未満

いただいたものから C# コードから判断すると、基本的に php の sock ファイルアップロード コードと同じです
具体的な実装は精査する必要があります。

サーバーが標準の http プロトコルに従っている場合は、当然、curl を使用する方が簡単です

サーバーからフィードバックを取得できないため、デバッグは不可能です

関数UploadFileToOA($file =array(),$senderLoginName)
{
$client=new SoapClient("http://XXX.XXX.XXX.XXX/xxx?wsdl"); array("userName "=>"ユーザー名","password"=>"パスワード");
$token = $client->__soapCall('authenticate',array($param)); $PostUrl = "http://XXX.XXX.XXX.XXX/XXXLLoginName."&token=".$token->return->id;
$fields = array("file"=>$file) );
$curl =curl_init($PostUrl);
curl_setopt($curl, CURLOPT_POST,true);
curl_setopt($curl, CURLOPT_POST, $fields); URLOPT_RETURTRANSFER,1) ;
$result =curl_exec($curl);
return $result
}
一握りの苦い涙、やっとできました

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