adnroid如何上傳圖片到webservice(c#編寫的)
來源:互聯網
上載者:User
這幾天 我在編寫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); // 圖片檔案名稱}}