我必须将从相机拍摄的照片上传到服务器。我成功拍摄了图像并得到了一个"资产网址"。当我打印它时,我得到类似"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);
我正在使用资产网址代替文件路径。有人可以帮助我吗?我是否必须更改资产网址?
由于 iOS 沙盒规则,无法直接读取此类 URL 的数据。IOW 您的图像不属于您的应用程序(它不保存在它的目录中)。
您可以做的是使用ALAssetRepresentation
获取图像(以及所需的选项)数据,然后将该数据发布到您的Web服务器。
有几种方法可以做到这一点,但一般来说你可以从ALAssetRepresentation
获取CGImage
,它可以用来创建一个可以转换为NSData
(代表PNG或JPEG)的UIImage
,然后你可以得到一个可用于POST的System.IO.Stream
。