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 相关文章推荐
Javascript中的Split使用方法与技巧
Mar 09 Javascript
很酷的javascript loading效果代码
Jun 18 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
Mar 05 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
Sep 14 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
Jul 31 Javascript
JS回调函数的应用简单实例
Sep 17 Javascript
js实现自定义进度条效果
Mar 15 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
AngularJs点击状态值改变背景色的实例
Dec 18 Javascript
JS实现区分中英文并统计字符个数的方法示例
Jun 09 Javascript
js实现点击选项置顶动画效果
Aug 25 Javascript
TypeScript 运行时类型检查补充工具
Sep 28 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
在JavaScript中调用php程序
2009/03/09 PHP
PHP STRING 陷阱原理说明
2010/07/24 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
按钮接受回车事件的三种实现方法
2014/06/06 Javascript
Windows8下搭建Node.js开发环境教程
2014/09/03 Javascript
javascript框架设计读书笔记之模块加载系统
2014/12/02 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
Javascript中神奇的this
2016/01/20 Javascript
js+canvas简单绘制圆圈的方法
2016/01/28 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
深入理解jQuery layui分页控件的使用
2016/08/17 Javascript
深入理解javascript函数参数与闭包
2016/12/12 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
使用vuex的state状态对象的5种方式
2018/04/19 Javascript
对 Vue-Router 进行单元测试的方法
2018/11/05 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
基于 Vue 的 Electron 项目搭建过程图文详解
2020/07/22 Javascript
Python定时执行之Timer用法示例
2015/05/27 Python
基于python的多进程共享变量正确打开方式
2018/04/28 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
使用PIL(Python-Imaging)反转图像的颜色方法
2019/01/24 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
2019/06/18 Python
python设计微型小说网站(基于Django+Bootstrap框架)
2019/07/08 Python
python判断自身是否正在运行的方法
2019/08/08 Python
tensorflow查看ckpt各节点名称实例
2020/01/21 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
html5记忆翻牌游戏实现思路及代码
2013/07/25 HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
2016/01/20 HTML / CSS
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
留学推荐信范文
2014/05/10 职场文书
答谢词范文
2015/01/05 职场文书