10

私はモバイルブラウザとデスクトップブラウザの両方のためのアプリケーションを開発しています。ブラウザがファイルのアップロードをサポートしているかどうかを検出する方法があるかどうか疑問に思っています。私は特にブラウザの検出ではなく、機能の検出を探しています。調べる方法はありますか?

サーバー側またはクライアント側で問題ありません。

ありがとう

4

4 に答える 4

10

クライアント側のJavaScript:

<input type="file" name="file" value="" id="fileUploadField1">      
<script type="text/javascript" charset="utf-8">
    if (document.getElementById('fileUploadField1').disabled)
        { document.write('your device does not allow uploads');     }
        else
        { document.write('your device does allow uploads');     }
</script>
于 2012-07-19T12:59:17.770 に答える
7

モバイルでの現在の入力タイプ=ファイルのサポートとそれを検出する方法についてのこの記事を読むことに興味があるかもしれません:http://viljamis.com/blog/2012/file-upload-support-on-mobile/(検出は現在です最大120の異なるモバイルブラウザ/モバイルOSの組み合わせで動作することがテストされています)。

基本的に、Modernizrと同様の検出を使用していますが、UA検出をバックアップとして使用して、サポートを誤って報告するモバイルブラウザーを除外します(これらの両方を使用する以外に、確実に検出する方法は他にないようです。機能検出ブラウザ検出)。

于 2012-12-19T14:08:41.503 に答える
5

拡張機能付きのModernizrフレームワークを使用できます。forms-fileinput試してみる。

if Modernizr.fileinput
  // you can use file inputs

Modernizrダウンロードページにアクセスし、forms-fileinput拡張機能を確認します(「非コア検出」セクションを展開します)。

于 2012-02-16T02:15:29.557 に答える
2

Modernizrは、ファイルのアップロードがサポートされているかどうかのチェックをサポートするようになりました。

From:ユーザーがファイルをアップロードできるかどうかを確認する最良の方法は何ですか?

if(Modernizr.fileinput) {
    //file input available!
} else {
    //No file input :(
}

このライブラリのサイズが心配な場合は、いつでも一度に1つのコンポーネントを取得できます-http: //modernizr.com/download/ ...または、使用するコードをコピーするだけです:https:// github .com / Modernizr / Modernizr / blob / master / feature-detects / forms / fileinput.js

if(navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0))|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|(Kindle\/(1.0|2.0|2.5|3.0))/)) {
    return false;
}
var elem = createElement('input');
elem.type = 'file';
return !elem.disabled;
于 2014-01-14T23:57:27.247 に答える