[Xamarin] 上傳檔案/圖片 到Server 端 (Android 端)
2015-08-25
上篇文章 [Xamarin] 上傳檔案/圖片 到Server 端 (Server 接檔案端) 我們從Server可以收檔案,現在就是Client 端的部分,我們要把圖檔上傳
1. 介紹畫面,按下按鈕後我們會把Assets/ld.jpg 傳到 server 上面
圖檔位置
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: