php如何调用WebService上传文件

WBOY
풀어 주다: 2016-06-20 12:36:29
원래의
1595명이 탐색했습니다.

由于我们公司要对OA进行二次开发,OA使用java开发的!现在里面有个接口是上传文件的接口,范例给的是c#的,我又不会C#,PHP也是新手没玩过接口上传文件,不知道如何动手!
下面附文档说明,看有没大神或版主帮我转成PHP的语言让我观摩学习下

uploadService 文件上传服务。
请求路径:/seeyon/uploadService.do?method= processUploadService

参数:
token    string   登录验证后获取的身份令牌。   我可以得到
senderLoginName  string  发起者登录名         我可以得到

返回值:string
成功则返回生成的附件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文件上传


有的人说用curl跟这个有区别吗?

看在100分的份上,求好心人给给代码,不要复制网上的

小弟才接触PHP不到4个月

从你给出的 C# 代码上看,他和 php 的 sock 文件上传代码是基本一致的
具体的实现有待推敲。

如果服务方遵守标准的 http 协议,用 curl 当然更简单

由于无法得到服务方的反馈,调试是无法进行的

function uploadFileToOA($file=array(),$senderLoginName)
{
    $client=new \SoapClient("http://XXX.XXX.XXX.XXX/xxx?wsdl");
    $param=array("userName"=>"用户名","password"=>"密码");
    $token = $client->__soapCall('authenticate',array($param));
    $PostUrl = "http://XXX.XXX.XXX.XXX/XXXLoginName."&token=".$token->return->id;
    $fields = array("file"=>$file);
    $curl = curl_init($PostUrl);
    curl_setopt($curl, CURLOPT_POST,true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
    $result = curl_exec($curl);
    curl_close($curl);
    return $result;
}
一把辛酸泪,太难了,终于搞定了

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!