私はモバイルブラウザとデスクトップブラウザの両方のためのアプリケーションを開発しています。ブラウザがファイルのアップロードをサポートしているかどうかを検出する方法があるかどうか疑問に思っています。私は特にブラウザの検出ではなく、機能の検出を探しています。調べる方法はありますか?
サーバー側またはクライアント側で問題ありません。
ありがとう
私はモバイルブラウザとデスクトップブラウザの両方のためのアプリケーションを開発しています。ブラウザがファイルのアップロードをサポートしているかどうかを検出する方法があるかどうか疑問に思っています。私は特にブラウザの検出ではなく、機能の検出を探しています。調べる方法はありますか?
サーバー側またはクライアント側で問題ありません。
ありがとう
クライアント側の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>
モバイルでの現在の入力タイプ=ファイルのサポートとそれを検出する方法についてのこの記事を読むことに興味があるかもしれません:http://viljamis.com/blog/2012/file-upload-support-on-mobile/(検出は現在です最大120の異なるモバイルブラウザ/モバイルOSの組み合わせで動作することがテストされています)。
基本的に、Modernizrと同様の検出を使用していますが、UA検出をバックアップとして使用して、サポートを誤って報告するモバイルブラウザーを除外します(これらの両方を使用する以外に、確実に検出する方法は他にないようです。機能検出とブラウザ検出)。
拡張機能付きのModernizrフレームワークを使用できます。forms-fileinput
試してみる。
if Modernizr.fileinput
// you can use file inputs
Modernizrダウンロードページにアクセスし、forms-fileinput
拡張機能を確認します(「非コア検出」セクションを展開します)。
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;