检查输入类型="file"中加载的文件的文件信息是否可用
checking the availability of file information of the file loaded in input type="file"
我已经创建了一个插件,在上传图像之前显示图像缩略图和信息,但由于它使用html5功能,它不适用于旧的IE版本。我只是想做更新这个插件,告诉用户你更新他的浏览器或使用另一个浏览器,如果功能不支持。下面是读取image的代码部分(在文件输入的onchange事件触发):
function readImg() {
$('#preview').html('<br /><span>Preview</span><br />');
var file = document.getElementById('addfile').files[0];
if (file.size > 1048576) {
parent.$('<div></div>').html('Photo file must be at most 1MB!').alertBox({ title: 'Upload Photo' });
document.getElementById('addfile').value = '';
return;
}
ldimgext = desiredExt(file.name);
if (!ldimgext) {
parent.$('<div></div>').html('Only gif,jpg and png files are accepted!').alertBox({ title: 'Upload Photo' });
document.getElementById('addfile').value = '';
return;
}
var reader = new FileReader();
reader.onload = imgLoaded;
reader.readAsDataURL(file);
}
function imgLoaded(e) {
tsimg = e.target.result.replace(/^data:image'/(png|jpeg|gif);base64,/, "");
var img = $('<img src="'+ e.target.result + '"/>');
var tmp = new Image();
tmp.src = e.target.result;
tmp.onload = function () {
if (tmp.width > tmp.height) img.attr('width', '80'); else img.attr('height', '80');
$('#preview').html('').append(img);
}
如何查看FileReader和filesize,…我在这里使用的所有选项在浏览器中是否支持?
在元素的更改事件上,您可以通过检查file
变量的返回值来检查是否支持size
,如果是null
则不支持。所以你的代码最终会变成:
function readImg() {
$('#preview').html('<br /><span>Preview</span><br />');
var file = document.getElementById('addfile').files[0];
//the added part
if(file==null){
alert('your browser does not support this feature');
return false;
}
if (file.size > 1048576) {
parent.$('<div></div>').html('Photo file must be at most 1MB!').alertBox({ title: 'Upload Photo' });
document.getElementById('addfile').value = '';
return;
}
ldimgext = desiredExt(file.name);
if (!ldimgext) {
parent.$('<div></div>').html('Only gif,jpg and png files are accepted!').alertBox({ title: 'Upload Photo' });
document.getElementById('addfile').value = '';
return;
}
var reader = new FileReader();
reader.onload = imgLoaded;
reader.readAsDataURL(file);
}
function imgLoaded(e) {
tsimg = e.target.result.replace(/^data:image'/(png|jpeg|gif);base64,/, "");
var img = $('<img src="'+ e.target.result + '"/>');
var tmp = new Image();
tmp.src = e.target.result;
tmp.onload = function () {
if (tmp.width > tmp.height) img.attr('width', '80'); else img.attr('height', '80');
$('#preview').html('').append(img);
}
相关文章:
- 为什么spyOn"停止函数“”的所有执行;Jasmine(要求澄清Jasmine 2.2间谍文件)
- Node.js服务器问题-已添加“/"在浏览器中查找文件时
- Django,HTML,JS:<img src=“#">可以在HTML中工作,但不能在JS文件中工作
- 在Asp.net的空网站中,如何改变"Web.config”;使内容(.js)文件显示在浏览器中,而不是下载
- "npm运行构建“;模块解析错误”;您可能需要一个适当的加载程序来处理此文件类型&”;
- Chrome、Firefox转换“:"至“-"以及“_"分别显示在文件保存对话框中
- 说明Node.js项目:是否只有一个"服务器文件“;在node.js中
- 如何在ajax中返回文本文件值Asynchronous"Synchronous正在被弃用”;
- 如何在Wordpress文件中添加自定义javascript代码"single.php”;
- 当我运行返回()时"":""Javascript中的语法,只有当我将文件保存为PHP
- MVC 4无法定位“;脚本"文件夹
- "ReferenceError未知插件“;当我尝试使用babel-cli转换目录中的js文件时
- 如何检查“;文件打开"窗口是用javascript打开的
- "不安全的JavaScript尝试访问URL为..的帧"使用本地文件
- "文件“;在mozilla扩展js模块中
- "格式不正确的JSON流”;当从SharePoint 2013 REST API对文件使用moveto或cop
- "模块化”;Javascript文件
- "在文件对话框中取消“;事件
- 正在尝试在IE7中测试HTML文件"$"是javascript部分的未定义错误
- "$(文件);在事件stopPropagation之后不触发$(a) 在“;而不触发新的元素