js实现图片上传到服务器和回显


Posted in Javascript onJanuary 19, 2020

关于js实现图片的上传和回显,曾经用户的代码粘在这里:

样式:这样写样式的道理是给<input>标签的父级设置一个背景图,就是‘+'那个背景图,然后把<input>的宽高设置得跟父级一样,且完全透明(注意是透明不是隐藏),这样点击的时候看似是点击的‘+'的节点,其实点击的是<input>节点。

.file-box {
   position: relative;
   display: inline-block;
   width:100px;
   height:100px;
   background:url('images/uploadPc.png')no-repeat;
   background-size:100px 100px;
  }
  #input_file{
   width:100%;
   height:100%;
   opacity: 0;
   filter:alpha(opacity=0);
  }

input标签:

<div class="file-box">
  <input type="file" value="" name="file" id = "input_file"
   accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" οnchange="imgPreview(this,0)" >
</div>

实现imgPreview()方法: 这个方法是给$("#input_file")这个对象设置图片的值并回显图片

function imgPreview(fileDom,i) {
  //判断是否支持FileReader
  if(window.FileReader) {
   var reader = new FileReader();
  } else {
   alert("您的设备不支持图片预览功能,如需该功能请升级您的设备!");
  }
  //获取文件
  var file = fileDom.files[0];
  var imageType = /^image\//;
  //是否是图片
  if(!imageType.test(file.type)) {
   alert("请选择图片!");
   return;
  }
  //读取完成
  reader.onload = function(e) {
   //图片路径设置为读取的图片
   // img.src = e.target.result;
   console.log(document.getElementsByClassName('file-box'));
   document.getElementsByClassName('file-box')[i].style.background = "url("+e.target.result+")no-repeat";//回显图片
   document.getElementsByClassName('file-box')[i].style.backgroundSize = '200px 160px';
   console.log('reader',reader)
  };
  reader.readAsDataURL(file);
 }

上传部分的代码:

var formData = new FormData();
formData.append('photo', $('#input_file')[0].files[0]);
//ajax请求
$.ajax({
   type: "post",
   url: "接口地址",
   data: formdata,
   dataType: 'json',
   processData: false, // 告诉jQuery不要去处理发送的数据
   contentType: false, // 告诉jQuery不要去设置Content-Type请求头
   xhrFields:{withCredentials:true},
   async: true, //默认是true:异步,false:同步。
   success: function (data) {
    callback(data);
   },
   error: function (data) {
    layer.msg('请求异常');
   },
  });

最终实现效果:

js实现图片上传到服务器和回显

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
网页自动跳转代码收集
Sep 27 Javascript
Jquery 常用方法经典总结
Jan 28 Javascript
原生js实现查找/添加/删除/指定元素的class
Apr 12 Javascript
JavaScript获取FCK编辑器信息的具体方法
Jul 12 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
浅谈javascript的Touch事件
Sep 27 Javascript
Vue.js中数组变动的检测详解
Oct 12 Javascript
ajax异步请求详解
Jan 06 Javascript
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
Dec 01 Javascript
微信小程序实现笑脸评分功能
Nov 03 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
基于layPage插件实现两种分页方式浅析
Jul 27 Javascript
ES6如何用一句代码实现函数的柯里化
Jan 18 #Javascript
ES6 Object.assign()的用法及其使用
Jan 18 #Javascript
vue项目中监听手机物理返回键的实现
Jan 18 #Javascript
vue组件内部引入外部js文件的方法
Jan 18 #Javascript
Node.js实现批量下载图片简单操作示例
Jan 18 #Javascript
vue实现微信浏览器左上角返回按钮拦截功能
Jan 18 #Javascript
vue+elementUi 实现密码显示/隐藏+小图标变化功能
Jan 18 #Javascript
You might like
用定制的PHP应用程序来获取Web服务器的状态信息
2006/10/09 PHP
php缓存技术介绍
2006/11/25 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
JS限制上传图片大小不使用控件在本地实现
2012/12/19 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
JS实现可缩放、拖动、关闭和最小化的浮动窗口完整实例
2015/03/04 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
JavaScript数据类型转换的注意事项
2016/07/31 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
javascript中关于类型判断的一些疑惑小结
2018/10/14 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
layui 富文本编辑器和textarea值的相互传递方法
2019/09/18 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
跟老齐学Python之使用Python查询更新数据库
2014/11/25 Python
简单了解django缓存方式及配置
2019/07/19 Python
Python 批量刷博客园访问量脚本过程解析
2019/08/30 Python
python ubplot使用方法解析
2020/01/10 Python
python str字符串转uuid实例
2020/03/03 Python
不同浏览器对CSS3和HTML5的支持状况
2009/10/31 HTML / CSS
CSS3 Flex 弹性布局实例代码详解
2018/11/01 HTML / CSS
领导证婚人证婚词
2014/01/13 职场文书
暑期社会实践方案
2014/02/05 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
2015年学校党建工作总结
2015/05/19 职场文书
矛盾论读书笔记
2015/06/29 职场文书
英语读书笔记
2015/07/02 职场文书
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python