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 相关文章推荐
jquery的Tooltip插件 qtip使用详细说明
Sep 08 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
Jan 13 Javascript
一个js导致的jquery失效问题的解决方法
Nov 27 Javascript
JavaScript基于ajax编辑信息用法实例
Jul 15 Javascript
JavaScript创建对象的方式小结(4种方式)
Dec 17 Javascript
Bootstrap面板使用方法
Jan 16 Javascript
100多个基础常用JS函数和语法集合大全
Feb 16 Javascript
微信小程序本地缓存数据增删改查实例详解
May 24 Javascript
Vue中引入样式文件的方法
Aug 18 Javascript
js隐式转换的知识实例讲解
Sep 28 Javascript
详解vue中移动端自适应方案
May 05 Javascript
Nuxt配置Element-UI按需引入的操作方法
Jul 06 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
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
php实现生成code128条形码的方法详解
2017/07/19 PHP
PHP+AJAX 投票器功能
2017/11/11 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
javascript json 新手入门文档
2009/12/03 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
JS实现为表格动态添加标题的方法
2015/03/31 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
Node.js中使用jQuery的做法
2016/08/17 Javascript
JavaScript中cookie工具函数封装的示例代码
2016/10/11 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
python获取mp3文件信息的方法
2015/06/15 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python 操作MySQL详解及实例
2017/04/30 Python
Python分治法定义与应用实例详解
2017/07/28 Python
python2.7到3.x迁移指南
2018/02/01 Python
python学习入门细节知识点
2018/03/29 Python
python实现二维插值的三维显示
2018/12/17 Python
Matplotlib animation模块实现动态图
2021/02/25 Python
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
艺术用品:Arteza
2018/11/25 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
机关党建工作汇报材料
2014/08/20 职场文书
2014年“四风”问题个人整改措施
2014/09/17 职场文书
同学聚会邀请函
2015/01/30 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书
sql字段解析器的实现示例
2021/06/23 SQL Server