HTMLフォームを使ったファイルのアップロードで、以下のようにinputタグを書いてアップロード出来ています。
拡張子が.pdfまたは.PDFのファイルのみ許すとし、必須としています。
<input type="file" name="file" accept=".pdf, .PDF" required>
以下の点で不満がありました。
- 他のUI要素はBootstrap 4を使って派手派手にしているのに、少し見た目が寂しい
- ドラッグ&ドロップに対応していない
そこで以下のように変更しました。
<div class="input-group mb-3"> <div class="custom-file"> <input type="file" class="custom-file-input" id="inputGroupFile01" name="file" accept=".pdf, .PDF" required> <label class="custom-file-label" for="inputGroupFile01">Choose file</label> </div> </div> ・・・(中略)・・・ <script src="https://cdn.jsdelivr.net/npm/bs-custom-file-input/dist/bs-custom-file-input.js"></script> <script> bsCustomFileInput.init(); </script> </body>
以下のブログを参考にしました。
https://blog1.mammb.com/entry/2019/12/11/090000
以下の点で改善しました。
- 見た目が他と統一感が取れた
- ドラッグ&ドロップに対応した
しかし、以下の点で不満があります。
- ドラッグ&ドロップ時にinputタグのaccept要素が効かない。[参照...]ボタンを使うとPDFファイルのみが表示されるが、ドラッグ&ドロップでは何のファイルでも表示されてしまう。
GitHubを見ると、おそらくbsCustomFileInput.init()メソッドに何らかの引数を渡せばできると思いますが、やり方が分かりません。
https://github.com/Johann-S/bs-custom-file-input
ということで、質問は
- ドラッグ&ドロップでファイルをPDFのみに限定することは出来るか
- できなければ、ドラッグ&ドロップを禁止にできるか
以上です。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。