私はasp.netでWebアプリケーションを開発しました。このプロジェクトには、ユーザーが画像形式(jpeg、jpg、bmpなど)のファイルを選択する必要があるページがあり、ページで画像をプレビューしたいのですが、しませんファイルをサーバーに投稿したくないクライアントで処理したいファイル API を介して Java スクリプト関数を使用して実行しましたが、IE9 でのみ機能しますが、ほとんどの利用者は IE8 を使用しています。理由は、IE8 がファイル API をサポートしていないためです。 IE8 のアップグレードまたはコード ビハインドのいくつかのパッチを作成する方法はありますか?つまり、ブラウザが IE であるかどうかを確認し、IE8 を IE9 に自動的にアップグレードする関数を呼び出してファイル API をサポートしていないことを意味します。
ユーザーにメッセージでそれを行うように依頼したくない プログラムで行いたい!!
ファイル API に必要な特別なパッチをインストールすることができたとしても、顧客はそれが私のアプリケーションのバグであり、コンピューターの知識が不足していると考えていました。
Async File Upload Ajax Controlも使用しますが、ajaxソリューションとHTTPハンドラーを使用してファイルをサーバーに投稿しますが、Javaスクリプトはすべてクライアントブラウザーで行います!!!
次のスクリプトは、ブラウザが API をサポートしているかどうかをチェックします
<script>
if (window.File && window.FileReader && window.FileList && window.Blob)
document.write("<b>File API supported.</b>");
else
document.write('<i>File API not supported by this browser.</i>');
</script>
次のスクリプトは、画像の読み取りと読み込みを行います
function readfile(e1)
{
var filename = e1.target.files[0];
var fr = new FileReader();
fr.onload = readerHandler;
fr.readAsText(filename);
}
HTML コード:
<input type="file" id="getimage">
<fieldset><legend>Your image here</legend>
<div id="imgstore"></div>
</fieldset>
JavaScript コード:
<script>
function imageHandler(e2)
{
var store = document.getElementById('imgstore');
store.innerHTML='<img src="' + e2.target.result +'">';
}
function loadimage(e1)
{
var filename = e1.target.files[0];
var fr = new FileReader();
fr.onload = imageHandler;
fr.readAsDataURL(filename);
}
window.onload=function()
{
var x = document.getElementById("filebrowsed");
x.addEventListener('change', readfile, false);
var y = document.getElementById("getimage");
y.addEventListener('change', loadimage, false);
}
</script>