Android使用ksoap调用.net webservice实现图片上传

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Drawing;
using System.IO;


/// <summary>
///UploadData 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 
// [System.Web.Script.Services.ScriptService]
public class UploadData : System.Web.Services.WebService {

    public UploadData () {

        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
    }

    [WebMethod]
    public string UploadImg(string bytestr)
    {
        string name = "";
        string mess = "";
        try
        {
           
            name = DateTime.Now.Year.ToString() + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second;
            if (Directory.Exists(Server.MapPath("image\\")) == false)//如果不存在就创建file文件夹
            {
                Directory.CreateDirectory(Server.MapPath("image\\"));
            }
            bool flag = StringToFile(bytestr, Server.MapPath("image\\") + "" + name + ".jpg");
            string filePath = "/image/" + name + ".jpg";
        }
        catch (Exception ex)
        {
            mess = ex.Message;
        }
        if (mess != "")
        {
            return mess;
        }
        else
        {
            return "文件上传成功";
        }
    }
    protected System.Drawing.Image Base64StringToImage(string strbase64)
    {
        try
        {
            byte[] arr = Convert.FromBase64String(strbase64);
            MemoryStream ms = new MemoryStream(arr);
            //Bitmap bmp = new Bitmap(ms);

            ms.Write(arr, 0, arr.Length);
            System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
            ms.Close();
            return image;
            //return bmp;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
    /// <summary> 
    /// 把经过base64编码的字符串保存为文件 
    /// </summary> 
    /// <param name="base64String">经base64加码后的字符串 </param> 
    /// <param name="fileName">保存文件的路径和文件名 </param> 
    /// <returns>保存文件是否成功 </returns> 
    public static bool StringToFile(string base64String, string fileName)
    {
        //string path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase) + @"/beapp/" + fileName; 

        System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create);
        System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
        if (!string.IsNullOrEmpty(base64String) && File.Exists(fileName))
        {
            bw.Write(Convert.FromBase64String(base64String));
        }
        bw.Close();
        fs.Close();
        return true;
    }


     
    
}

  

package com.finly.test;

import static org.junit.Assert.*;

import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Hashtable;

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Test;
import org.kobjects.base64.Base64;

import com.finly.util.VisitWebServiceHelp;

public class AndroidTest7 {

	@Test
	public void test() throws JSONException, IOException {
		String namespace = "http://tempuri.org/";
		String url = "http://192.168.1.186:8082/Service/UploadData.asmx";
		//String url ="https://register.gs-markets.com/webservice/Service/Customerwebservice.asmx";
		String way="UploadImg";
		VisitWebServiceHelp Vh=new VisitWebServiceHelp();
		Hashtable<String, String> ht =ht3();
		String res = Vh.VisitWebService(namespace,url,way,ht);
		System.out.println(res);
	}
	private Hashtable<String, String>  ht3()throws JSONException, IOException{
		
		String fileName="C:\\Users\\User\\Desktop\\fff.png";
		FileInputStream fis = new FileInputStream(fileName);   
        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.encode(baos.toByteArray())); 
		
		//JSONObject PriceNotice =new JSONObject();
		
		
		//User.put("Phone", "234");
		
		Hashtable<String, String> ht = new Hashtable<String, String>();
		ht.put("bytestr",uploadBuffer);
		
		System.out.println(ht);
		return ht;
	}

	
}

  

posted @ 2013-09-12 16:38  finly  阅读(946)  评论(0)    收藏  举报