我在 asp.net 中开发了一个 Web 应用程序,该项目中有一个页面,用户应该选择图片格式(jpeg、jpg、bmp...)的文件,我想在页面中预览图像但我没有'不想将文件发布到服务器我想在客户端处理它我已经通过文件 API 使用 java 脚本函数完成了它但它只适用于 IE9 但大多数客户使用 IE8 原因是 IE8 不支持文件 API有什么方法可以让IE8升级或后面的代码中的一些补丁我的意思是检查浏览器是否是IE并且不支持文件API调用一个自动将IE8升级到IE9的函数。
我不想让用户在我想以编程方式执行的消息中执行此操作!
即使可以安装文件 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>