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 字符编码规则
May 04 Javascript
jquery获取table中的某行全部td的内容方法
Mar 08 Javascript
javascript实现分栏显示小技巧附图
Oct 13 Javascript
举例详解JavaScript中Promise的使用
Jun 24 Javascript
AngularJS 使用 UI Router 实现表单向导
Jan 29 Javascript
JS实现1000以内被3或5整除的数字之和
Feb 18 Javascript
jQuery Html控件基本操作(日常收集整理)
Mar 11 Javascript
第六篇Bootstrap表格样式介绍
Jun 21 Javascript
JavaScript你不知道的一些数组方法
Aug 18 Javascript
使用Fullpage插件快速开发整屏翻页的页面
Sep 13 Javascript
使用webpack搭建vue项目及注意事项
Jun 10 Javascript
VUE实现图片验证码功能
Nov 18 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
帅气的琦玉老师
2020/03/02 日漫
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
PHP模块化安装教程
2016/06/01 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
js如何判断不同系统的浏览器类型
2013/10/28 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
javascript实现英文首字母大写
2015/04/23 Javascript
AngularJS实现用户登录状态判断的方法(Model添加拦截过滤器,路由增加限制)
2016/12/12 Javascript
详解jQuery中的事件
2016/12/14 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
详解vue 兼容IE报错解决方案
2018/12/29 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
举例讲解Python中的list列表数据结构用法
2016/03/12 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
Python基于codecs模块实现文件读写案例解析
2020/05/11 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
python对输出的奇数偶数排序实例代码
2020/12/04 Python
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
教师应聘个人求职信
2013/12/10 职场文书
酒店员工职业生涯规划
2014/02/25 职场文书
资源工程专业毕业生求职信
2014/02/27 职场文书
高中生操行评语
2014/04/25 职场文书
安全生产标语
2014/06/06 职场文书
护理目标管理责任书
2014/07/25 职场文书
股指期货心得体会
2014/09/10 职场文书
湖南省党的群众路线教育实践活动总结会议新闻稿
2014/10/21 职场文书
2014年酒店工作总结范文
2014/11/17 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
Python制作春联的示例代码
2022/01/22 Python
mysql幻读详解实例以及解决办法
2022/06/16 MySQL