adnroid如何上传图片到webservice(c#编写的)

这几天 我在编写adnroid移动采编的系统 由于是第一次使用java和android平台 遇到了很多问题
其中有: <1>如何调用.net写的webservices  
           <2>如何浏览图片(imageview)
           <3>如何取图片的名称和路径    这些问题已经解决了   花了我好几天的时间
下面我说一下是 如何解决  adnroid如何上传图片到webservice(c#编写的)  的
webservices 的方法:  (这个不是很关键  一般我们都会处理)
View Code
参数的定义:
string UpLoadPhoto(string strxml, byte[] photodata, int length)
方法体关键代码: (将byte[]类型的变量 还原成文件)
FileStream fs = new FileStream(sFilePath + "\\" + FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
fs.Position = Position;
fs.Write(Bytes, 0, Bytes.Length);
fs.Close();
fs = null;
复制代码
android客户端(sdk2.2)代码
我只是说一下 第二个参数如何生成吧(问题的关键就在这里)
@Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  setContentView(R.layout.tupiangaojian);
  //
  ImageView iv_image = (ImageView) findViewById(R.id.imview);
  iv_image.setDrawingCacheEnabled(true);   //这句话是和后面的Bitmap bitmap = iv_image.getDrawingCache();对应
  //
 }
 //取得图片的Base64编码的字符串  (bitmap 变量从imageview上面就可以取得 Bitmap bitmap = iv_image.getDrawingCache();)
  ByteArrayOutputStream baos = new ByteArrayOutputStream();
  bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
  String photodata = new String(Base64.encode(baos.toByteArray(),
    Base64.DEFAULT));
string UpLoadPhoto(string strxml, byte[] photodata, int length)
其中 这个 photodata 就是要传到参数photodata 上面的数据 ( 有意思的是参数定义的是byte[] 这个变量是String)
这个问题困扰了好几天 最后就是这样解决的
顺便再记录一下其他的事情:
如何获取图片的文件名称(imageview)
View Code
@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (resultCode == RESULT_OK) {
Uri uri = data.getData();
   Cursor cursor = getContentResolver().query(uri, null, null, null,
     null);
   cursor.moveToFirst();
   // String imgNo = cursor.getString(0); // 图片编号
   imgPath = cursor.getString(1); // 图片文件路径
   String imgSize = cursor.getString(2); // 图片大小
   String imgName = cursor.getString(3); // 图片文件名
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值