图片粘贴预览-FileReader

在开发输入编辑器时,往往会用到本地图片,或者截屏粘贴到编辑器中的情况。
这个思路是,将图片转化为URL格式的字符串,来表示文件内容,通过设置src属性,进而显示出完整图片。

我的启蒙文章将截图实时显示在浏览器中,我通过这篇启蒙文章亲自敲打了一遍,发现确实功能强大。但是遗憾的是,只有在Chrome中才起作用,使得我不得不去学习clipboardData对象以及FileReader对象。

FileReader

使用FileReader对象,web应用程序可以异步的读取存储在用户计算机上的文件(或者原始数据缓冲)内容,可以使用File
对象或者Blob
对象来指定所要处理的文件或数据.其中File对象可以是来自用户在一个input元素上选择文件后返回的FileList
对象,也可以来自拖放操作生成的 DataTransfer
对象,还可以是来自在一个HTMLCanvasElement
上执行mozGetAsFile()方法后的返回结果

var eventData = {
    type: 'auto',
    method: 'paste',
    dataTransfer: clipboard.initPasteDataTransfer( evt )
};

~~~

var imgFile = eventData.dataTransfer.getFile(0);

~~~

if(imgFile && imgFile.type == 'image/png'){
  var reader = new FileReader();
  reader.readAsDataURL( imgFile );
}
setTimeout( function() {
    if(imgFile && imgFile.type == 'image/png'){
        eventData.binaryFlow = reader.result;
    }
    firePasteEvents( editor, eventData);
}, 0 );             
//将二进制流赋给src
imgElement.setAttribute('src',e.data.binaryFlow);

若要存储,利用后台语句进行转换,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,859评论 18 139
  • H5 meta详解 viewport width:控制 viewport 的大小,可以指定的一个值,如果 600,...
    FConfidence阅读 839评论 0 3
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,198评论 4 61
  • 正在为四六级什么的英语学习苦恼吗,不如跟我一起尝试一个新的小方法吧。 用一个具体的场景来试着记住每天背的单词。当你...
    菱歌上下阅读 966评论 5 7
  • 四十以后,人渐渐的开始恋旧起来,与之对应的是记忆衰退期越来越快:每每当我遇到感动的人或者事总想把它留在记忆中,可回...
    songer007阅读 184评论 0 1