javascript结合fileReader 实现上传图片


Posted in Javascript onJanuary 30, 2015

关于File API这里就不详细解释了,小伙伴们自行度娘吧,来我们就要利用文件句柄来读取文件内容,这是通过FileReader来实现的,通过FileReader接口,我们可以异步地将文件内容加载到内存中,赋予某个js变量。

function getImgSrc(target, callback) {

    if (window.FileReader) {

        var oPreviewImg = null, oFReader = new window.FileReader();

        oFReader.onload = function (oFREvent) {

            oPreviewImg = new Image();

            var type = target.files[0].type.split("/")[1];

            var src = oFREvent.target.result;

            oPreviewImg.src = src;

            if (typeof callback == "function") {

                callback(oPreviewImg, target, type, src);

            }

            return oPreviewImg.src;

        };

        return (function () {

            var aFiles = target.files;

            if (aFiles.length === 0) {

                return;

            }

            if (!IsImgType(aFiles[0].type)) {

                alert("You must select a valid image file!");

                return;

            }

            if (aFiles[0].size > 1024 * 1024) {

                target.value = "";

                alert('Please upload image file size less than 1M.');

                return;

            }

            oFReader.readAsDataURL(aFiles[0]);

        })();

    }

    if (navigator.appName === "Microsoft Internet Explorer") {

        return (function () {

            document.getElementById("imagePreview").filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = target.value;

        })();

    }

}

以上就是javascript结合fileReader 实现上传图片的关键性代码了,小伙伴们喜欢吗?

Javascript 相关文章推荐
动态获取复选框checkbox选中个数的jquery代码
Jun 25 Javascript
jQuery插件简单实现方法
Jul 18 Javascript
漫谈JS引擎的运行机制 你应该知道什么
Jun 15 Javascript
JS制作适用于手机和电脑的通知信息效果
Oct 28 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
Apr 28 Javascript
基于bootstrap实现多个下拉框同时搜索功能
Jul 19 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 Javascript
如何正确理解vue中的key详解
Nov 02 Javascript
使用vuex存储用户信息到localStorage的实例
Nov 11 Javascript
微信小程序后端无法保持session的原因及解决办法问题
Mar 20 Javascript
小程序wx.getUserProfile接口的具体使用
Jun 02 Javascript
使用JavaScript+canvas实现图片裁剪
Jan 30 #Javascript
js判断手机和pc端选择不同执行事件的方法
Jan 30 #Javascript
项目中常用的JS方法整理
Jan 30 #Javascript
jQuery实现带滚动线条导航效果的方法
Jan 30 #Javascript
jquery实现拖拽调整Div大小
Jan 30 #Javascript
jQuery中$.click()无效问题分析
Jan 29 #Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 #Javascript
You might like
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
PHP把数字转成人民币大写的函数分享
2014/06/30 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP微信企业号开发之回调模式开启与用法示例
2017/11/25 PHP
JavaScript Date对象使用总结
2009/05/14 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
JQuery点击行tr实现checkBox选中的简单实例
2016/05/26 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
JS命令模式例子之菜单程序
2016/10/10 Javascript
canvas实现流星雨的背景效果
2017/01/13 Javascript
微信小程序 PHP生成带参数二维码
2017/02/21 Javascript
基于 webpack2 实现的多入口项目脚手架详解
2017/06/26 Javascript
JavaScript仿微信(电话)联系人列表滑动字母索引实例讲解(推荐)
2017/08/16 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
如何将你的AngularJS1.x应用迁移至React的方法
2018/02/01 Javascript
vue2.0使用swiper组件实现轮播的示例代码
2018/03/03 Javascript
vue-cli axios请求方式及跨域处理问题
2018/03/28 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
python的常用模块之collections模块详解
2018/12/06 Python
Python Flask上下文管理机制实例解析
2020/03/16 Python
CSS3实现红包抖动效果
2020/12/23 HTML / CSS
HTML5注册表单的自动聚焦与占位文本示例代码
2013/07/19 HTML / CSS
澳大利亚领先的亚麻品牌:Bed Threads
2019/12/16 全球购物
医学生实习自荐信
2013/10/01 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
CSS3通过var()和calc()函数实现动画特效
2021/03/30 HTML / CSS
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS