如何在iOS设备上允许上传PDF文件?

17

问题

我已经建立了一个HTML网络表单,用于上传文件。当从iOS设备访问时,非图像文件(.pdf,.docx等)在选择“浏览”按钮以从iOS文件浏览器中选择文件时,会出现灰色的情况。

我有一个完全功能的页面(HTML,CSS,JS,PHP),但我已将整个页面剥离到最简单的表单元素来测试功能。这是一个示例代码,当在运行iOS 12.3的设备上查看时,不起作用(除了样板标记之外,HTML文件中只有这些内容)。

<form action="" enctype="multipart/form-data" method="post">
   <input type="file" accept="image/*, .heic, .hevc, .heif, .pdf, .png, .gif, .jpg, .jpeg, .doc, .docx, image/png, image/jpg, image/jpeg, image/gif, application/msword, application/pdf" multiple>
</form>

您可以在W3School的“尝试”编辑器之一中看到一个类似简单的示例,演示了如何从iOS设备中选择非图像文件:

https://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_file

我尝试过的

  • SSL(扩展验证)
  • 苹果技术支持(几个小时后转到Apple开发者网站)
  • 多个浏览器(iOS Safari、iOS Chrome、iOS Google App)
  • 多个苹果设备(在Mac上工作,在iPhone和iPad上失败)
  • 竞争平台(在Android上工作)
  • iOS 13 beta(可用)

问题

某些因素导致W3School和其他网站的服务器在处理iOS表单时与我的表现不同。

iOS上有哪些因素决定了哪些网站/表单能够选择非图像文件进行上传?

2个回答

6

您必须删除image/*和其他image/文件类型。

<form action="" enctype="multipart/form-data" method="post">
   <input type="file" accept=".heic, .hevc, .heif, .pdf, .png, .gif, .jpg, .jpeg, .doc, .docx, application/msword, application/pdf" multiple>
</form>

这是您的代码样例,我进行了修改:https://codepen.io/VladimirButakov/pen/XvXxGq?&editable=true


我会测试一下并告诉你我的发现。是否有任何浏览器逻辑或其他原因,导致“image/”文件类型影响非图像上传? - Grant Noe
在我的测试中,这个有效!我仍然很想知道它背后的逻辑,因为我找不到文档。你的经验今天真是救了我一命。 - Grant Noe

1
我制作了一个网页,可以获取PDF文件并通过Telegram机器人发送到聊天中。 我从我的iPhone打开了网页,只需选择PDF并发送即可,一切正常。
我使用的输入文件代码如下。
<form action="inviapdf.php" enctype="multipart/form-data" method="post" class="inputfile">
<input accept=".png, .jpg, .jpeg" class="bott" type="file" name="pdf"/>
<button>SendPDF</button>
</form>

我有一部安装了最新IOS系统的Iphone 7+。 如果我没有回答你的问题,你能具体一点吗? 谢谢。


所以,我检查了你放在那里的W3School示例,并且正如我所说,它对我有效。此外,我使用我的朋友的电话(最新IOS的Iphone X)进行了测试,它也运行良好。 与其通过评论交谈,不如在Telegram上联系我@AScotto133。 我可以向您展示我的网页,以便您检查它是否对您有效。 - Synapsis
另外,我编辑了我的答案,更改了“接受”部分的一些代码。 - Synapsis
我真的很想授予你这个奖项,但是核心问题仍未解答,那就是“iOS上有哪些‘X’因素决定了哪些网站能够在Web表单上传中选择非图像文件?”我已经给你点赞,因为你帮助我确认它在一些网站上运行正常(包括你自己的网站,我相信)。现在我只关注于弄清楚为什么我在使用的服务器上构建的网站没有像工作站点那样运行。 - Grant Noe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接