如何使用单声道触摸将图像上传到服务器?

时间:2014-02-28 10:29:46

标签: c# xamarin.ios httpwebrequest xamarin

我必须将从相机拍摄的照片上传到服务器。我成功拍摄了图像并获得了“资产网址”。当我打印它时,我得到类似“library://asset/asset.JPG?id = 869A0C6A-A07B-4B53-8925-5A50765A062D& ext = JPG“。当我尝试使用以下代码上传文件时不上传。

我使用以下代码。这里给出https://stackoverflow.com/a/7411872/2270057

WebClient client = new WebClient();
 byte[] bret = client.UploadFile(path, "POST", FilePath);

我使用资产网址代替文件路径。有人可以帮帮我吗?我是否必须更改资产网址?

1 个答案:

答案 0 :(得分:1)

由于iOS沙盒规则,无法直接读取此类URL的数据。 IOW你的图像不属于你的应用程序(它没有保存在它的目录中)。

您可以使用ALAssetRepresentation获取图像(以及您想要的选项)数据,然后将该数据发布到您的网络服务器。

有几种方法可以这样做,但一般情况下,您可以从CGImage获取ALAssetRepresentation,这可用于创建UIImage,可以将其转换为NSData (表示PNG或JPEG),然后您可以获得System.IO.Stream可用于POST。