图片上传即时显示javascript代码

时间:2021-06-25 23:41:32

这是基于javascript的一种图片上传即时显示方法,测试结果IE6和火狐浏览器可以正常使用。google浏览器不兼容。

这种方法兼容性比较差,仅供参考,建议使用ajax方法来即时显示图片。

1.首先是javascript代码

/**
* 图片上传即时显示javascript
*/
var allowExt = [ 'jpg', 'gif', 'bmp', 'png', 'jpeg' ];
var preivew = function(file, container) {
try {
var pic = new Picture(file, container);
} catch (e) {
alert(e);
}
}; // 缩略图类定义
var Picture = function(file, container) {
var height = 0, widht = 0, ext = '', size = 0, name = '', path = '';
var self = this;
if (file) {
name = file.value;
if (window.navigator.userAgent.indexOf("MSIE") >= 1) {
file.select();
path = document.selection.createRange().text;
} else if (window.navigator.userAgent.indexOf("Firefox") >= 1) {
if (file.files) {
path = window.URL.createObjectURL(file.files[0]);
} else {
path = file.value;
}
}
} else {
throw "bad file";
}
ext = name.substr(name.lastIndexOf("."), name.length); if (container.tagName.toLowerCase() != 'img') {
throw "container is not a valid img label";
container.visibility = 'hidden';
} container.src = path;
container.alt = name;
container.style.visibility = 'visible';
height = container.height;
widht = container.widht;
size = container.fileSize; this.get = function(name) {
return self[name];
}; this.isValid = function() {
if (allowExt.indexOf(self.ext) !== -1) {
throw 'the ext is not allowed to upload';
return false;
}
}; };

2.html代码,主要在于onchange方法调用上面的javascript方法,然后是一个用来显示图片的img标签

<body>
<input name="image"nchange="preivew(this,document.getElementById('img'));"/>
<img id="img" style="visibility:hidden" height="150px" width="500px">
</body>