android上传图片至服务器

需要加入两个包

 

服务器端

Upload.wsdl

 <?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/Upload/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Upload" targetNamespace="http://www.example.org/Upload/">
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.example.org/Upload/">
      <xsd:element name="UpdateImage">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="name" type="xsd:string"/>
            <xsd:element name="image" type="xsd:string"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="UpdateImageResponse">
        <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="out" type="xsd:boolean"/>
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="UpdateImageRequest">
    <wsdl:part element="tns:UpdateImage" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="UpdateImageResponse">
    <wsdl:part element="tns:UpdateImageResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="Upload">
    <wsdl:operation name="UpdateImage">
      <wsdl:input message="tns:UpdateImageRequest"/>
      <wsdl:output message="tns:UpdateImageResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="UploadSOAP" type="tns:Upload">
    <soap:binding style="document" transport=">
    <wsdl:operation name="UpdateImage">
      <soap:operation soapAction="
>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="Upload">
    <wsdl:port binding="tns:UploadSOAP" name="UploadSOAP">
      <soap:address location="
>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

/**
 * UploadSOAPImpl.java
 *
 * This file was auto-generated from WSDL
 * by the Apache Axis 1.4 Apr 22, 2006 (06:55:48 PDT) WSDL2Java emitter.
 */

package org.example.www.Upload;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;

import sun.misc.BASE64Decoder;

public class UploadSOAPImpl implements org.example.www.Upload.Upload_PortType {
 public boolean updateImage(String name, String image)
   throws java.rmi.RemoteException {

  FileOutputStream fos = null;
  try {
   byte[] buffer = new BASE64Decoder().decodeBuffer(image);
   System.out.println(buffer.length);
//   fos = new FileOutputStream("d://" + name + ".jpg");
   fos = new FileOutputStream("/home/tlcom/uploadImg/"+name+".jpg");
   fos.write(buffer);
   fos.flush();
   fos.close();
   return true;
  } catch (FileNotFoundException e) {
   e.printStackTrace();
   // TODO: handle exception
  } catch (IOException e) {
   e.printStackTrace();
   // TODO: handle exception
  } finally {
   try {
    fos.flush();
    fos.close();

   } catch (Exception e) {
    e.printStackTrace();
    // TODO: handle exception
   }
  }

  return false;
 }

}

 

 

<ns1:deployment xmlns="

http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:ns1="http://xml.apache.org/axis/wsdd/">
 <ns1:globalConfiguration>
  <ns1:parameter name="sendMultiRefs" value="true"/>
  <ns1:parameter name="disablePrettyXML" value="true"/>
  <ns1:parameter name="adminPassword" value="admin"/>
  <ns1:parameter name="attachments.Directory" value="D:\worksapce\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\uploadImg\WEB-INF\attachments"/>
  <ns1:parameter name="dotNetSoapEncFix" value="true"/>
  <ns1:parameter name="enableNamespacePrefixOptimization" value="false"/>
  <ns1:parameter name="sendXMLDeclaration" value="true"/>
  <ns1:parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>
  <ns1:parameter name="sendXsiTypes" value="true"/>
  <ns1:requestFlow>
   <ns1:handler type="java:org.apache.axis.handlers.JWSHandler">
    <ns1:parameter name="scope" value="session"/>
   </ns1:handler>
   <ns1:handler type="java:org.apache.axis.handlers.JWSHandler">
    <ns1:parameter name="scope" value="request"/>
    <ns1:parameter name="extension" value=".jwr"/>
   </ns1:handler>
  </ns1:requestFlow>
 </ns1:globalConfiguration>
 <ns1:handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/>
 <ns1:handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/>
 <ns1:handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
 <ns1:service name="AdminService" provider="java:MSG">
  <ns1:parameter name="allowedMethods" value="AdminService"/>
  <ns1:parameter name="enableRemoteAdmin" value="false"/>
  <ns1:parameter name="className" value="org.apache.axis.utils.Admin"/>
  <ns1:namespace>http://xml.apache.org/axis/wsdd/</ns1:namespace>
 </ns1:service>
 <ns1:service name="UploadImg" provider="java:RPC" style="wrapped" use="literal">
  <ns1:parameter name="allowedMethods" value="*"/>
  <ns1:parameter name="wsdlPortType" value="Upload"/>
  <ns1:parameter name="typeMappingVersion" value="1.2"/>
  <ns1:parameter name="wsdlServicePort" value="UploadSOAP"/>
  <ns1:parameter name="className" value="org.example.www.Upload.UploadSOAPSkeleton"/>
  <ns1:parameter name="wsdlTargetNamespace" value=">
  <ns1:parameter name="wsdlServiceElement" value="Upload"/>
  <ns1:parameter name="schemaUnqualified" value="
>
 </ns1:service>
 <ns1:service name="Version" provider="java:RPC">
  <ns1:parameter name="allowedMethods" value="getVersion"/>
  <ns1:parameter name="className" value="org.apache.axis.Version"/>
 </ns1:service>
 <ns1:transport name="http">
  <ns1:requestFlow>
   <ns1:handler type="URLMapper"/>
   <ns1:handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
  </ns1:requestFlow>
  <ns1:parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
  <ns1:parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
  <ns1:parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/>
  <ns1:parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <ns1:parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
  <ns1:parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
 </ns1:transport>
 <ns1:transport name="local">
  <ns1:responseFlow>
   <ns1:handler type="LocalResponder"/>
  </ns1:responseFlow>
 </ns1:transport>
</ns1:deployment>

 

 

 

客户端

private  void uploadTest() {
  try {
//   FileInputStream fis = new FileInputStream("/sdcard/sdf.jpg");
   FileInputStream fis = new FileInputStream("d://1.jpg");
   ByteArrayOutputStream baos = new ByteArrayOutputStream();
   byte[] buffer = new byte[8192];
   int count = 0;
   while ((count = fis.read(buffer)) >= 0) {
    baos.write(buffer, 0, count);
   }
   String uploadBuffer = new String(Base64.encodeBase64(baos
     .toByteArray()));
   connectWebService(uploadBuffer);
   fis.close();
  } catch (FileNotFoundException e) {
   e.printStackTrace();
   // TODO: handle exception
  } catch (IOException e) {

   e.printStackTrace();
   // TODO: handle exception
  }

 }
 private   boolean connectWebService(String imgBuffer) {
  boolean ret = false;
  String Url = "

http://IP:port/uploadImg/services/UploadImg?wsdl";
  String namespace = "http://www.example.org/Upload/";
  String methodName = "updateImage";
  SoapObject request = new SoapObject(namespace, methodName);
  request.addProperty("image", imgBuffer);
  SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
    SoapEnvelope.VER11);
  envelope.setOutputSoapObject(request);
  AndroidHttpTransport aht = new AndroidHttpTransport(Url);
  try {
   aht.call(null,envelope);
   SoapObject so=(SoapObject)envelope.bodyIn;
   ret=Boolean.valueOf(so.getProperty("out").toString());//true false
   
   
  } catch (IOException e) {
   e.printStackTrace();  }
   catch (org.xmlpull.v1.XmlPullParserException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return false;

 }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值