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 相关文章推荐
Js 时间间隔计算的函数(间隔天数)
Nov 15 Javascript
js实现延迟加载的方法
Jun 24 Javascript
jQuery简单动画变换效果实例分析
Jul 04 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
Apr 25 jQuery
基于substring()和substr()的使用以及区别(实例讲解)
Dec 28 Javascript
Node.JS循环删除非空文件夹及子目录下的所有文件
Mar 12 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
微信小程序仿抖音视频之整屏上下切换功能的实现代码
May 24 Javascript
JS组件库AlloyTouch实现图片轮播过程解析
May 29 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
May 31 Javascript
vue flex 布局实现div均分自动换行的示例代码
Aug 05 Javascript
使用jQuery实现购物车
Oct 29 jQuery
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+AJAX实现无刷新注册(带用户名实时检测)
2007/01/02 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP文件下载实例代码浅析
2016/08/17 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
bootstrap table 表格中增加下拉菜单末行出现滚动条的快速解决方法
2017/01/05 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
2018/08/13 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
Django与遗留的数据库整合的方法指南
2015/07/24 Python
python类的继承实例详解
2017/03/30 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
Python Socket编程之多线程聊天室
2018/07/28 Python
python3读取图片并灰度化图片的四种方法(OpenCV、PIL.Image、TensorFlow方法)总结
2019/07/04 Python
python中dict()的高级用法实现
2019/11/13 Python
python3 Scrapy爬虫框架ip代理配置的方法
2020/01/17 Python
Python计算IV值的示例讲解
2020/02/28 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
Canvas在超级玛丽游戏中的应用详解
2021/02/06 HTML / CSS
解除合同协议书
2014/04/17 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
小学运动会宣传稿
2015/07/23 职场文书
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang