xamarin.forms - 如何从相机捕获图像并将图像转换为 base 64 字符串以 xamarin 形式发送到服务器?
问题描述
我是 xamarin 形式的新手。我实现了一个简单的程序,其中从相机捕获图像并将其转换为 base64 字符串并将其发送到服务器,如下所示。
private async void AddNewPhoto(object sender, EventArgs e)
{
MemoryStream memoryStream = new MemoryStream();
img.Source = ImageSource.FromStream(() =>
{
var stream = file.GetStream();
file.GetStream().CopyTo(memoryStream);
return stream;
});
paths.Enqueue(filePath);
imgPaths.Add(file);
val.Add(img.Source);
// Set StackLayout in XAML to the class field
parent = headerStack1;
parent.Children.Add(img);
}
async void btnSubmitClicked(object sender, EventArgs args)
{
if (paths.Count > 0)
{
string URL1 = "";
string basicDomain1 = AppConstant.ComplaintsUploadImageURL + PhoneNo + "~secretcode-" +
secretCode;
MultipartFormDataContent form1 = new MultipartFormDataContent();
DependencyService.Get<IHudService>().ShowHud("Loading");
List<string> pathItems = new List<string>();
for each (MediaFile ph in imgPaths)
{
var fileName = filePath.Split('\\').LastOrDefault().Split('/').LastOrDefault();
var file = ph;
var upfilebytes = File.ReadAllBytes(file.Path);
var base64 = Convert.ToBase64String(upfilebytes);
var content = new StringContent(base64);
form1.Add(content, "image_64string");
Dictionary<string, string> UploadJson = new Dictionary<string, string>();
UploadJson.Add("image_txt", imgText);
form1.Add(new StringContent(UploadJson["image_txt"]), "image_txt");
form1.Add(new StringContent("jpg"), "image_extension");
var response_ = await this.apiService.PostImageRequest(form1, URL1, basicDomain1);
if (!response_.IsSuccess)
{
await Application.Current.MainPage.DisplayAlert("Error", response_.Message, "Network Problem!!");
return;
}
}
}
}
但它显示错误“无法访问关闭的流”。如何修复此错误?
解决方案
推荐阅读
- android - 如何使用 HttpURLConnection 在多部分请求中发送 JPEG 图像
- javascript - 多个属性的组合作为节点标签
- python - 如何通过 gremlin-python 获取所有边、关联顶点以及各自的 id、标签和属性?
- c++ - 如何让 OpenGL 在检测到的标记上绘图?
- c# - 在文本框创建的网格中计算用户输入值的范围(未指定的数量)
- bash - 如何将带有空格的目录作为参数传递给函数?
- tensorflow - 使用 fit_generator 的基本 RNN 训练不会输出预期的形状
- flutter - Flutter 无法将 CameraPreview 小部件设置为匹配屏幕尺寸
- sql-server - 如何跳过错误并继续运行 SQL 查询?
- python-3.x - 读取 pem 证书期间 python 3.6 出现 x509 错误