2012-03-27 113 views
2

假设我在远程服务器上有一个网页(说filebrowse.html),有一个浏览文件按钮,我想通过UIWebView访问此页面并从我的画廊上传照片。 (画廊在iPhone上)使用UIWebView上传一张照片

这可能吗?

回答

0

嗯 - 有趣。您是否尝试过在本地Safari中访问该页面?它会让你浏览电话吗?如果没有(我假设你在这里构建一个应用程序),你可以使用一个POST到问题表单(使用curl和浏览器Web检查器来计算出你需要的参数等)。

+0

使用<input type="file" />是的,我可以有能力从Safari和我的应用程序也访问,你有什么想法,你可以与我分享。感谢 – 2012-03-27 12:12:51

+0

如果您能够在Safari中实现并实际上传文件,那么UIWebView也会这样做。只需告诉UIWebView(可能在代码中)专门加载该URL。 – 2012-03-27 12:16:03

+0

没有在我的应用程序文件浏览器按钮被禁用,我可以添加一个事件,当用户点击该禁用的按钮? – 2012-03-27 12:20:46

1

在iOS上,无法“浏览文件系统”,因此无法使用UIWebView中的表单来附加上传照片。答案是颇为曲折,但这里有云:

你将不得不 -

  1. 的UIImagePickerController获得从照片相册的图片。
  2. 确定POST标头的提交表单
  3. 编码图像作为NSData的
  4. 写有NSURLConnection的POST请求与NSData对象越来越插在正确的头文件

我真的不能给你所有的代码,因为它需要被分解成所有这些步骤。

+0

感谢您的回答,你写的什么步骤我可以做我唯一的问题是如何触发事件,当用户点击文件浏览器按钮在ios端。 – 2012-03-28 04:47:59

+0

UIWebView的委托对象询问它是否应该加载一个URL,告诉你何时加载一个URL,以及URL何时加载完成或加载失败。如果触摸网页中的按钮会导致网页加载新的URL,则可以使用委托方法找出其意图并在那里拦截它,然后调用UIImagePickerViewController。 UIWebView也有一些粗糙的javaScript功能,但实际上没有办法监视UIWebView内部发生的事情。 – Justin 2012-03-28 17:16:43

0

可能this会有所帮助,它表明你如何选择从网页视图中的照片没有在<form></form>

+0

这将仅选择图像... – Alwin 2017-10-21 16:36:15