iOS UIWebview使用HTML表单从app目录上传

时间:2014-03-12 16:25:49

标签: ios iphone objective-c uiwebview

我想知道是否有办法直接使用具有带文件上传输入的HTML表单的UIWebview从应用程序主页上传文件。

我正在从UIWebview加载:

<form action="test.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file"><br>
    <input type="submit" name="submit" value="Submit">
</form>

但iPhone询问我是否要“拍照”或“选择现有”。我宁愿做的是选择应用程序本地目录中的文档或图像。

这可能吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

我也在寻找答案。在我自己挖掘之后,似乎唯一的方法就是:

  • 当用户点击上传按钮时拦截
  • 添加自定义文件选择器
  • 然后使用NSURLConnection发送帖子请求,而不是提交表单。

答案 1 :(得分:0)

在iOS上,无法“浏览文件系统”,因此您无法使用UIWebView中的表单附加照片以供上传。

你将不得不 -

UIImagePickerController从相册中获取照片。

确定提交表单的POST标头

将图像编码为NSData

使用NSURLConnection编写POST请求,并将NSData对象插入正确的标题

答案 2 :(得分:0)

我遇到了类似的问题,我发现IOS中的UIWebView元素不支持html元素:

我不确定为什么Apple选择不支持这个重要的html元素,但我相信他们有他们的理由。 (即使这个元素在IOS上的Safari上完美运行。)

在许多情况下,当用户在UIWebView中单击此类按钮时,它将允许他们拍摄/选择照片。但是,IOS中的UIWebView无法在提交表单时将这样的文件附加到POST数据中。

解决方案:要完成相同的任务,您可以使用触发UIImagePickerController的按钮在InterfaceBuilder中创建类似的表单。然后,您创建一个包含所有表单数据和图像的HTTP POST请求。它并不像听起来那么难,请查看下面的链接,了解一些完成工作的示例代码:ios使用HTTP POST上传图像和文本