web-dev-qa-db-ja.com

iOSでPDFファイルのアップロードを許可する方法は?

問題

ファイルをアップロードするためのHTML Webフォームを作成しました。 iOSデバイスからアクセスすると、[参照]ボタンがオンのときに、画像以外のファイル(.pdf、.docxなど)が灰色表示で表示されるiOSファイルエクスプローラーからファイルを選択するために選択されました。

私は完全な機能を備えたページ(HTML、CSS、JS、PHP)を持っていますが、機能をテストするために、ページ全体を最も単純なフォーム要素まで削除しました。デバイスで表示したときに、が私のサーバーで機能しない動作しないコードの例を次に示します(これは、ボイラープレートタグのほかにHTMLファイルにあるすべてです)。 iOS 12.3を実行している場合:

<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の「試してみる」エディターの1つを使用して、iOSデバイスから選択可能な非画像ファイルの同様に単純な作業の例を確認できます。

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

私が試したこと

  • SSL(拡張検証)
  • Appleテクニカルサポート(Apple開発者のWebサイトを参照)
  • 複数のブラウザー(iOS Safari、iOS Chrome、iOS Google App)
  • 複数のAppleデバイス(Macでは機能し、iPhoneおよびiPadでは機能しません)
  • 競合プラットフォーム(Androidで動作)
  • iOS 13ベータ版(機能)

質問

何かが原因で、W3Schoolや他のサイトのサーバーは、iOSでフォームを操作するときに私のサーバーとは異なる動作をします。

アップロードする画像以外のファイルを選択できるサイト/フォームを決定するiOS上の要因は何ですか?

14
Grant Noe

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

PDFファイルを取得し、電報ボットを介してチャットに送信できるWebページを作成しました。 IphoneからWebページを開いて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+を持っています。あなたの質問に答えなかった場合、それについてもう少し具体的に説明できますか?

1
Synapsis