var rFilter = /^(image\/bmp|image\/gif|image\/jpeg|image\/png|image\/tiff)$/i; //控制格式

var iMaxFilesize = 2097152; //控制大小2M

function preview(file) {

  var reader = new FileReader();

  if (!rFilter.test(file.type)) {

  alert("文件格式必须为图片");

    return;

  }

  if (file.size > iMaxFilesize) {

    alert("图片大小不能超过2M");

    return;

  }

  reader.onload = function(e) {

    //图片的base64格式,可以直接当成img的src属性

    var $img = $('<img>').attr("src", e.target.result);

    $(".preview").append($img);

    //使用FormData的最大优点就是我们可以异步上传一个二进制文件,在此用来上传图片

    var formdata = new FormData();//创建一个formdata对象

    //通过append(key, value)来添加数据,如果指定的key不存在则会新增一条数据,如果key存在,则添加到数据的末尾具体可看https://segmentfault.com/a/1190000006716454
    formdata.append("image",file.files[0]);
   $.ajax({
    url: "/s/api?cmd=Image.add&tip=video_banner",
    type:"POST",
    cache:false,
    data:formdata,
    processData:false, // 告诉jQuery不要去处理发送的数据
    contentType:false, // 告诉jQuery不要去设置Content-Type请求头
    success:function(data){
    sign = data.res.sign;
    }
   });

  };

  reader.readAsDataURL(file);

}

  $('[type=file]').change(function(e) {

    var file = e.target.files[0];

    preview(file);

  });

FileReader实现图片预览,并上传(js代码)的更多相关文章

  1. 基于“formData批量上传的多种实现” 的多图片预览、上传的多种实现

    前言 图片上传是web项目常见的需求,我基于之前的博客的代码(请戳:formData批量上传的多种实现)里的第三种方法实现多图片的预览.上传,并且支持三种方式添加图片到上传列表:选择图片.复制粘贴图片 ...

  2. 原生js实现图片预览并上传

    最近主导的PC客户端网站重构工程告一段落,下一阶段开始给公司APP开发H5页面,技术栈是react.最近碰到一个需求:需要在H5页面上添加身份证照片,预览并上传.因为要兼容安卓4.4以下版本的手机,所 ...

  3. H5-FileReader实现图片预览&Ajax上传文件

    图片预览 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. 前端图片预览,上传前预览,兼容IE7、8、9、10、11,Firefox,Chrome(学习到的知识)

    文章地址:http://www.cnblogs.com/rubylouvre/p/4597344.html 一.window.URL 在Chrome中,window.URL和window.webkit ...

  5. vue组件利用formdata图片预览以及上传《转载》

    转载修改 在项目中直接新建一个单文件页,复制一下代码即可       upload组件: <template> <div class="vue-uploader" ...

  6. vue组件利用formdata图片预览以及上传

    转载修改 在项目中直接新建一个单文件页,复制一下代码即可       upload组件: <template> <div class="vue-uploader" ...

  7. jquery+html5+canvas实现图片 预览 压缩 上传

    javascirpt (function($){ $.fn.extend({ aiiUpload:function(obj) { if(typeof obj !="object") ...

  8. 用js实现预览待上传的本地图片

    js实现预览待上传的本地图片,代码如下: <form name="form5" id="form5" method="post" ac ...

  9. 使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)

    使用html5 FileReader获取图片,并异步上传到服务器(不使用iframe)   原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax,把图片的base64编码 ...

  10. 使用html5 FileReader获取图片,并异步上传到server(不使用iframe)

    使用html5 FileReader获取图片,并异步上传到server(不使用iframe) 原理: 1.使用FileReader 读取图片的base64编码 2.使用ajax.把图片的base64编 ...

随机推荐

  1. React 获取服务器API接口数据:axios、fetchJsonp

    使用axios.fetchJsonp获取服务器的接口数据.其中fetchJsonp是跨域访问 一.使用axios 1.安装axios模块 npm install --save axios 2.引用模块 ...

  2. 循环列表最后一条不显示borderBottom

    You could achieve this using some logic: return books.map((book, i) => { return( <View style={ ...

  3. Android Spannable为同一TextView设直不同样式

    /** * UNICODE * <p> * 偶尔吃(1-2次/周) ( 中文破弧 * 经常吃(3-5次/周) ( 英文破弧 * * @param name * @return */ pri ...

  4. alias命令详解

    1.简介: 设置指令的别名,用户可利用alias,自定指令的别名.若仅输入alias,则可列出目前所有的别名设置. alias的效力仅及于该次登入的操作.若要每次登入是即自动设好别名,可在/etc/p ...

  5. py2neo的使用(转)

    转自:https://blog.csdn.net/sinat_26917383/article/details/79901207#24-%E7%B1%BB%E4%BC%BCset%E7%9A%84%E ...

  6. 小A买彩票-(组合数)

    链接:https://ac.nowcoder.com/acm/contest/549/C来源:牛客网 题目描述 小A最近开始沉迷买彩票,并且希望能够通过买彩票发家致富.已知购买一张彩票需要3元,而彩票 ...

  7. to_char与to_date的区别

    select * from csend where credttm > to_date('2018-06-11','yyyy-mm-dd'); select * from csend where ...

  8. es curl 访问

    1. curl -u elastic:mypass -X GET "localhost:9200/my_index/_search?pretty" 相关链接:https://www ...

  9. python--第二十天总结(Django的一些注意)

    关闭Django模板的自动转义 Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全.但是有的时候我们可能不希望这些HTML元素 被转义,比如我们做一个内容管 ...

  10. docker简单搭建gitlab

    docker启动非常简单: docker run --detach --hostname 192.168.0.33 --publish 443:443 --publish 80:80 \ --publ ...