Xamarin.Forms——上传图片
来源:互联网 发布:seo新手教程 编辑:程序博客网 时间:2024/06/14 18:21
效果图
- 在所有平台增加Plugin.Media NutGet包
- 编写xaml
<StackLayout>
<Button Text="上传图片" Clicked="Button_Clicked" />
</StackLayout>
3.处理事件
- 编写xaml
private async void Button_Clicked(object sender, EventArgs e) { string imgName= await TakeImageAction("123"); }
4.编写TakeImageAction()方法
string action = await DisplayActionSheet("", "", "", "拍照", "从相册选择"); MediaFile pickFile = null; switch (action) { case "拍照": //判断能否使用摄像头 if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported) { await DisplayAlert("错误提示", "未找到可用摄像头", "确认"); } var filea = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions { PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium, //拍照后的文件夹名 Directory = "SjBIdrPics", //拍照后的文件名 Name = "SjBIdr.jpg" }); if (filea == null) return null; pickFile = filea; break; case "从相册选择": //判断能否读取图片 if (!CrossMedia.Current.IsPickPhotoSupported) { await DisplayAlert("错误提示", "未获得权限读取相册", "确认"); } //选择图片 var fileb = await Plugin.Media.CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions { PhotoSize = Plugin.Media.Abstractions.PhotoSize.Medium }); if (fileb == null) return null; pickFile = fileb; break; } if (pickFile != null) { //上传图片到服务器 HttpClient client = new HttpClient(); #region MultipartFormDataContent form = new MultipartFormDataContent(); StreamContent fileContent = new StreamContent(pickFile.GetStream()); fileContent.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream"); fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data"); fileContent.Headers.ContentDisposition.FileName = System.DateTime.Now.ToString("yyyMMddHHmmss") + "_" + UserName + ".jpg"; form.Add(fileContent); #endregion HttpResponseMessage res = await client.PostAsync("***/Test/ImageUpload", form); var uploadModel = await res.Content.ReadAsStringAsync(); return uploadModel; } else { return ""; }
GitHub官方文档:https://github.com/jamesmontemagno/MediaPlugin
阅读全文
0 0
- Xamarin.Forms——上传图片
- Xamarin.Forms 用户界面——动画
- Xamarin.Forms 用户界面——颜色
- Xamarin.Forms 用户界面——控件
- Xamarin.Forms 基础——Application基础
- Xamarin.Forms 基础——App Class
- Xamarin.Forms 基础——应用程序生命周期
- Xamarin.Forms 基础——Behavior+EffectBehavior
- Xamarin.forms Image实现圆形图片
- Xamarin.Forms 用户界面——动画——简单动画
- Xamarin.Forms 用户界面——动画——放松功能
- Xamarin.Forms 用户界面——动画——自定义动画
- Xamarin.Forms 用户界面——控件——页面
- Xamarin.Forms 用户界面——控件——布局
- Xamarin.Forms 用户界面——控件——View
- Xamarin.Forms 用户界面——控件——Cells
- Xamarin.Forms 用户控件——控件—— DataPages
- Xamarin.Forms 用户界面——控件——Images
- 欢迎使用CSDN-markdown编辑器
- 曾经帮助我走出迷茫的一些书和博客(尤其推荐给计算机专业的同学)
- ajax和json
- 学习笔记25-前缀/中缀/后缀表达式
- h5测试点
- Xamarin.Forms——上传图片
- 解题报告:HDU_6185 Covering (轮廓线DP+高斯消元+矩阵快速幂)
- 数组中的逆序对(归并排序思路)
- HDU 1087 FatMouse and Cheese——DP
- jdbc利用集合传递参数
- bitset总结
- MySQL 聚簇索引和非聚簇索引
- 深入理解Java虚拟机(第二章):Java内存区域与内存溢出异常
- Java_基础—多线程之间的通信以及JDK1.5新特性互斥锁