2017-11-20 9 views
0

上のSafariで動作していない受け入れる属性I次のコードを持っている:入力タイプ=「ファイルは」のMacBook

<div class="row"> 
 
    <div class="col-xs-12"> 
 
    <div class="form-group"> 
 
     <label for="attachments">Attach a file</label> 
 
     <input type="file" id="attachments" accept=".doc,.gif,.jpeg,.jpg,.pdf,.png,.xls,.xlsx,.zip" name="attachments" class="form-control"> 
 
    </div> 
 
    </div> 
 
</div>

は、Windows上のChromeブラウザでは正常に動作しますが、それは動作しません。 MacBookのSafariブラウザで。

enter image description here

このため任意のアイデア?

+0

お願いします。 –

+0

誰でもアップロードできるので、アップロードしたファイルの種類を確認するためにこの機能に頼らないことを願っています。それはSafariでサポートされているMIMEタイプを見つけるためにここにありますhttps://trac.webkit.org/browser/trunk/Source/WebCore/platform/MIMETypeRegistry.cpp –

+0

私はユーザーがそれを変更できることを知っている、私は再び確認する必要があります一度ファイルが選択されているが、クライアントが私に尋ねたら、クライアントがファイルを選択するとすぐにフィルタを必要とします。 –

答えて

0

実際

)...
... Safariはaccept属性としてファイル伸長を受け入れていないようで、彼らはこの正確なファイル拡張子に対するMIMEの検出を行いますので、それはバグとして見ることができます

私が今見ている唯一の回避策は、完全なMIMEタイプを使用することです。
しかし、これはいくつかのブラウザがOSのMIMEタイプ辞書をファイルの拡張子に対して使用する場合に問題を引き起こす可能性があります。

ここでは、MIMEと拡張機能の両方を追加するのが最善の方法です。

<div class="row"> 
 
    <div class="col-xs-12"> 
 
    <div class="form-group"> 
 
     <label for="attachments">Attach a file</label> 
 
     <input type="file" id="attachments" 
 
     accept="application/msword,image/gif,image/jpeg,application/pdf,image/png,application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/zip,.doc,.gif,.jpeg,.jpg,.pdf,.png,.xls,.xlsx,.zip" 
 
     name="attachments" class="form-control"> 
 
    </div> 
 
    </div> 
 
</div>
Apache's listからパントマイムを手に入れた)

はまた、このaccept属性はユーザーのみが期待されているファイルの種類を知っている、と絶対にないようにするための便利な方法としてそこになければならないことに注意してください取得するファイルタイプを確認する方法です。あなたの実際のリストは多種多様に見えるので、それを使用するのはほとんど意味がありません。

+0

はい、\t 私はユーザがそれを変更できることを知っています。ファイルが選択されていますが、クライアントが私に尋ねたので、クライアントがファイルを選択するとすぐにフィルタが必要になります。 –

+0

私はあなたを追跡しようとしましたが、それでもサファリでは機能しません –

+0

@TranAudi答えのスニペットがうまくいかないことを意味しますか?私のSafari 11.0.1でSierra – Kaiido

関連する問題