javascript 图片上传缩略图预览
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>图片上传缩略图预览</title>
<script language="JavaScript" type="text/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) {
try {
var height = ,
widht = ,
ext = '',
size = ,
name = '',
path = '';
var self = this;
if (file)
{
name = file.value;
if (window.navigator.userAgent.indexOf("MSIE") >= ) {
var browser = navigator.appName;
var b_version = navigator.appVersion
var version = b_version.split(";");
var trim_Version = version[].replace(/[ ]/g, ""); if (trim_Version == "MSIE6.0") {
file.select();
//path = document.selection.createRange().text;
path = window.URL.createObjectURL(file.files[]);
} else if (trim_Version == "MSIE7.0") {
file.select();
//path = document.selection.createRange().text;
path = window.URL.createObjectURL(file.files[]);
} else if (trim_Version == "MSIE8.0") {
file.select();
//path = document.selection.createRange().text;
path = window.URL.createObjectURL(file.files[]);
} else {
file.select();
//file.blur();
//path = document.selection.createRange().text;
path = window.URL.createObjectURL(file.files[]);
}
}
else if (window.navigator.userAgent.indexOf("Firefox") >= ) {
if (file.files) {
path = file.files.item().getAsDataURL();
} 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) !== -) {
throw 'the ext is not allowed to upload';
return false;
}
}
}
catch (e) {
alert("R:"+e);
} /***
*读取,图片为流文件
***/
/*
var reader = new FileReader();
reader.onload = function(e)
{
console.log(e.target.result);
alert(e.target.result);
var fromData = new FormData();
fromData.append("base64", e.target.result);
}
reader.readAsDataURL(document.querySelector("input[type=file]").files[0]);
*/
}
</script>
</head>
<body>
<div class='previewDemo'>
<input id="file" type="file" onchange="preivew(this, document.getElementById('img'));" />
<br />
<img id="img" style="visibility:hidden" height="100px" width="100px" /> </div>
</body>
</html>
javascript 图片上传缩略图预览的更多相关文章
- html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- ASP.NET MVC图片上传前预览
回老家过春节,大半个月,在家的日子里,吃好睡好,人也长了3.5Kg.没有电脑,没有网络,无需写代码,工作上相关的完全放下......开心与父母妻儿过个年,那样的生活令Insus.NET现在还在留恋.. ...
- 图片上传本地预览。兼容IE7+
基于JQUERY扩展,图片上传预览插件 目前兼容浏览器(IE 谷歌 火狐) 不支持safari 预览地址:http://www.jinbanmen.com/test/1.html js代码:/**名称 ...
- DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)
1.控件功能 列表控件展示数据.弹框控件执行编辑操作.Tab控件实现多标签编辑操官方说明 2.官方示例 2.1 ASPxImage http: ...
- uploadPreview 兼容多浏览器图片上传及预览插件使用
uploadPreview兼容多浏览器图片上传及预览插件 http://www.jq22.com/jquery-info2757 Html 代码 <div class="form-gr ...
- js实现图片上传及预览---------------------->>兼容ie6-8 火狐以及谷歌
<head runat="server"> <title>图片上传及预览(兼容ie6/7/8 firefox/chrome)</title> & ...
- file标签 - 图片上传前预览 - FileReader & 网络图片转base64和文件流
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
- input file实现多选,限制文件上传类型,图片上传前预览功能
限制上传类型 & 多选:① accept 属性只能与 <input type="file" /> 配合使用.它规定能够通过文件上传进行提交的文件类型. ② mu ...
- 【转】html之file标签 --- 图片上传前预览 -- FileReader
记得以前做网站时,曾经需要实现一个图片上传到服务器前,先预览的功能.当时用html的<input type="file"/>标签一直实现不了,最后舍弃了这个标签,使用了 ...
随机推荐
- Android:Dialog中隐藏键盘的注意事项
场景:弹出一个Dialog.里面有一个EditText.用来输入内容.由于输入时.须要弹出键盘.所以当Dialog消失时.键盘要一起隐藏. 如今我们做一个自己定义的Dialog MyDialog ex ...
- java如何将毫秒数转为相应的年月日格式
public static void main(String[] args) { Date date = new Date(); Long time = date.getTime(); System. ...
- Linux生成高强度密码
在撰写,自动化脚本.往往需要添加账户及密码.如何自动化填写随机密码,有点意思.... 01.openssl生成密码 [root@mvp ~]# openssl rand -base 14Usage: ...
- Javakeyword之this
this的作用: 1) this是当前对象的一个引用.便于对当前对象參数的使用. 2)能够返回对象的自己这个类的引用.同一时候还能够在一个构造函数其中调用还有一个构造函数 this演示样例: publ ...
- Mustache模板引擎
Mustache是一个Logic-Less模板引擎,即:零逻辑引擎,原因在于它只有标签,没有流程控制语句,这是它与其它模板引擎不同的地方. Mustache小巧玲珑,几乎用各种语言都实现了一遍. Mu ...
- ios NSURLSession使用说明及后台工作流程分析
NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作.注意, ...
- 超酷的Android 侧滑(双向滑动菜单)效果
下面看看我们如何使用它,达到我们想要的效果 public class MainActivity extends Activity { /** * 双向滑动菜单布局 */ private SliderM ...
- Android Scrollview嵌套RecyclerView导致滑动卡顿问题解决
一个比较长的界面一般都是Scrollview嵌套RecyclerView来解决.不过这样的UI并不是我们开发人员想看到的,实际上嵌套之后.因为Scrollview和RecyclerView都是滑动控件 ...
- Linux内核配置解析 - 概述(基于ARM64架构)
1. 前言 对刚接触Linux kernel的同学来说,遇到的第一个问题就是:我该从哪里入手?. 话说Linux kernel的打开方式是多种多样的:从简单的设备驱动入手:从源代码的目录结构入手:从k ...
- C语言07指针高级
01内存四区 接口封装和设计思想引导 接口封装设计思想引导 Sckclient客户端api模型设计 第一套api函数 #ifndef _SCK_CLINT_H_ #define _SCK_CLINT_ ...