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

Posted

技术标签:

【中文标题】如何允许在 iOS 上上传 PDF 文件?【英文标题】:How to allow PDF file uploads on iOS? 【发布时间】:2019-10-16 12:58:53 【问题描述】:

问题

为了上传文件,我构建了一个 html 网络表单。 When accessed from an ios device, non-image files (.pdf, .docx, etc.) appear greyed-out when the "Browse" button is chosen to select a file from the iOS file explorer.

我有一个功能齐全的页面(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 的“Try It”编辑器之一从 iOS 设备中选择非图像文件:

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

我的尝试

SSL(扩展验证) Apple 技术支持(在电话上几个小时后转到 Apple Developer 网站) 多种浏览器(iOS Safari、iOS Chrome、iOS Google App) 多个 Apple 设备(在 Mac 上工作,在 iPhone 和 iPad 上失败) 竞争平台(适用于 androidiOS 13 测试版(有效)

问题

某些原因导致 W3School 和其他网站的服务器在 iOS 上使用表单时的行为与我的不同。

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

【问题讨论】:

【参考方案1】:

您必须删除 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

【讨论】:

我会测试一下,然后告诉你我发现了什么。任何浏览器逻辑或“图像/”文件类型会影响非图像上传的原因? 在我的测试中,这行得通!我仍然很想知道它背后的逻辑,因为我一直找不到文档。今天你的经历真的是救命稻草。【参考方案2】:

我制作了一个网页,可以获取 pdf 文件并通过电报机器人将它们发送到聊天室。 我从我的 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)对其进行了测试,它工作得很好.无需通过 cmets 与我联系,请通过电报 @AScotto133 联系我,我可以向您展示我的网页,以便您检查它是否适合您。 我还编辑了答案以更改“接受”部分的一些代码 我真的很想把这个奖励给你,但核心问题仍然没有得到解答,那就是What is the "X" factor on iOS that determines which sites are able to select non-image files on a web form upload? 我给了你一个赞成票,因为你帮助我确定它在某些网站上运行(包括,我敢肯定,你的)。现在我只专注于弄清楚为什么我在我正在使用的服务器上构建的站点不像像工作站点那样运行。

以上是关于如何允许在 iOS 上上传 PDF 文件?的主要内容,如果未能解决你的问题,请参考以下文章

从 iPhone 浏览 PDF 文件并上传到服务器

如何在新选项卡中打开时重命名保存在服务器上的pdf

如何上传pdf文件

如何从设备中获取 PDF 文件以便能够从我的应用程序中上传?

iOS - 如何通过 Objective-C 定位我的 iPad/iPhone 上的所有文件

如何下载pdf文件