将图片从手机上传到服务器
Posted
技术标签:
【中文标题】将图片从手机上传到服务器【英文标题】:Upload images from Mobile to Server 【发布时间】:2021-12-13 19:00:27 【问题描述】:我正在为 android 和 ios 开发一个 Xamarin.Forms 应用程序,该应用程序需要拍照并将其上传到服务器。然后,为了在客户端拍照,我使用 Xam.Plugin.Media。
但是,由于此插件以 Xamarin.Forms.Image 格式保存照片,并且我需要在服务器端以 System.Drawing.Image 格式保存它们,所以首先我尝试将 Xam.Plugin.Media 拍摄的照片保存在一个Byte数组,上传到服务器,然后把Bytes数组保存成System.Drawing.Image格式,但是不行。
之后,我在网上搜索了几天如何转换格式,我没有找到任何有用的东西,无论是在移动端使用 Xamarin 转换还是在服务器端使用 C# 转换。
谁能帮助我应对这个挑战?
在此先感谢,并为我糟糕的英语感到抱歉。
马塞洛·卡马拉特
【问题讨论】:
在我看来,使用 base64 字符串更适合将图像或文件发送到服务器。 你在说什么?图像以设备的任何本机格式保存 - 通常为 jpg。Xamarin.Forms.Image
是 UI 控件,而不是图像格式。关于上传图片存在许多现有问题。
【参考方案1】:
首先,我会使用来自Xamarin Essentials 的MediaPicker
,而不是过时的媒体插件。其次,您返回的FileResult
提供了对Stream
的访问权限,您可以将其复制到MemoryStream
中,您可以使用MemoryStream.ToArray()
将其复制到字节数组中,从而为您提供byte[]
。您可以在我链接到的页面上查看如何从照片中获取流的示例以及其他方法的各种文档以找出您需要的内容。
然后您可以根据您的服务器 API 上传所需的字节数。
【讨论】:
以上是关于将图片从手机上传到服务器的主要内容,如果未能解决你的问题,请参考以下文章