[Xamarin] 上傳檔案/圖片 到Server 端 (Android 端)

2015-08-25


上篇文章 [Xamarin] 上傳檔案/圖片 到Server 端 (Server 接檔案端)  我們從Server可以收檔案,現在就是Client 端的部分,我們要把圖檔上傳
1. 介紹畫面,按下按鈕後我們會把Assets/ld.jpg 傳到 server 上面
Image 074
圖檔位置
Image 075

2 C# Code :


var imgStream = Assets.Open("ld.jpg");
 
//將Stream 轉成byte[] 
var imgBytes = StreamToBytes(imgStream);
 
var webClient = new WebClient();
 
byte[] response = webClient.UploadData("http://demo.site/risivfile.ashx", imgBytes);
 
string s = webClient.Encoding.GetString(response);
 
Toast.MakeText(this, s, ToastLength.Short).Show();

3. 其中有一段將 Stream 轉成 byte[] 的 function


public byte[] StreamToBytes(Stream stream)
{
    using (var memoryStream = new MemoryStream())
    {
        stream.CopyTo(memoryStream);
        return memoryStream.ToArray();
    }
}

4.因為方便日後操作,我也附上 Bitmap 轉成 byte[] 的 Code


public static byte[] ImageToByte(Bitmap img)
{
    MemoryStream stream = new MemoryStream();
    img.Compress(Bitmap.CompressFormat.Jpeg, 100, stream);
    return stream.ToArray();
 
}

希望可以幫到有需要的人..
Source code:


當麻許的超技八 2014 | Donma Hsu Design.