1. file格式 (创建formData来完成file上传)

  1. 我们的接口需求:

  1.  

代码:


  1. <input type="file" id="imgfile" accept="image/jpeg, image/png, image/jpg" >
  2.  
  3. $("#imgfile").change(function () {
  4. var formData = new FormData();
  5. $.each($('#imgfile')[0].files, function (i, file) {
  6. formData.set('idcard', file); //idcard 字段 根据自己后端接口定
  7. });
  8. //processData: false, contentType: false,多用来处理异步上传二进制文件。
  9. that.$indicator.open();
  10. $.ajax({
  11. url: 'http://wjtest.jecinfo.cn:9090/indentity/check',
  12. type: 'POST',
  13. data: formData, // 上传formdata封装的数据
  14. dataType: 'JSON',
  15. cache: false, // 不缓存
  16. processData: false, // jQuery不要去处理发送的数据
  17. contentType: false, // jQuery不要去设置Content-Type请求头
  18. success:function (data) {
  19. if(data.code =='0'){
  20.  
  21. }
  22.  
  23. }
  24. });
  25.  
  26. });

2. base64格式

  

  1. <input type="file" id="imgfile">
  2.  
  3. var base64Pic = ''
  4. document.getElementById('imgfile').onchange = function(){
  5. var fileReader = new FileReader();
  6. fileReader.readAsDataURL(this.files[0]);
  7. fileReader.onload = function(){
  8. base64Pic = fileReader.result;
  9. console.log(base64Pic ) //base64 可以直接放在src上 预览
  10. }

3. Blob流格式

base64转换为blob流

  1. function dataURItoBlob(base64Data) {
  2. //console.log(base64Data);//data:image/png;base64,
  3. var byteString;
  4. if(base64Data.split(',')[0].indexOf('base64') >= 0)
  5. byteString = atob(base64Data.split(',')[1]);//base64 解码
  6. else{
  7. byteString = unescape(base64Data.split(',')[1]);
  8. }
  9. var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];//mime类型 -- image/png
  10.  
  11. // var arrayBuffer = new ArrayBuffer(byteString.length); //创建缓冲数组
  12. // var ia = new Uint8Array(arrayBuffer);//创建视图
  13. var ia = new Uint8Array(byteString.length);//创建视图
  14. for(var i = 0; i < byteString.length; i++) {
  15. ia[i] = byteString.charCodeAt(i);
  16. }
  17. var blob = new Blob([ia], {
  18. type: mimeString
  19. });
  20. return blob;
  21. }

更多参考链接:      https://blog.csdn.net/qq_34664239/article/details/94595508

        https://blog.csdn.net/qq_34664239/article/details/94601498

js 图片上传给后台的3种格式的更多相关文章

  1. MVC 手机端页面 使用标签file 图片上传到后台处理

    最近刚做了一个头像上传的功能,使用的是H5 的界面,为了这个功能搞了半天的时间,找了各种插件,有很多自己都不知道怎么使用,后来只是使用了一个标签就搞定了:如果对样式没有太大的要求我感觉使用这个就足够了 ...

  2. 前端js图片上传

    前端js图片上传,原理用input type="file"获取图片然后把图片转换成base64编码传到后台. 图片上传 <!DOCTYPE html><html& ...

  3. 兼容好的JS图片上传预览代码

    转 : http://www.codefans.net/articles/1395.shtml 兼容好的JS图片上传预览代码 (谷歌,IE11) <html xmlns="http:/ ...

  4. layui图片上传之后后台如何修改图片的后缀名以及返回数据给前台

    const pathLib = require('path');//引入node.js下的一个path模块的方法,主要处理文件的名字等工作,具体可看文档 const fs = require(''fs ...

  5. JS图片上传预览插件制作(兼容到IE6)

    其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方 ...

  6. 微信JS图片上传与下载功能--微信JS系列文章(三)

    概述 在前面的文章微信JS初始化-- 微信JS系列文章(一)中已经介绍了微信JS初始化的相关工作,接下来本文继续就微信JS的图片上传功能进行描述,供大家参考. 图片上传 $(function(){ v ...

  7. js图片上传 的方法

    先规划出框架 <div id="AQA" style="width:300px; height:200px; background-color:aquamarine ...

  8. js 图片上传

    可能很多不熟悉的图片上传的同学会觉得有点懵,其实做过一次你就会发现特别的简单. 只是一个formData格式的表单提交,把地址写到 action = "" 里面就可以了,当然你可以 ...

  9. 一个node.js图片上传显示小应用

    文件结构如下: 实现的功能有: 可以通过浏览器使用. 当请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可以选择一个图片并提交表单,随后文件将被上 ...

随机推荐

  1. 如何从头到脚彻底解决一个MySQL Bug

    摘要:为了保障华为云GaussDB产品的可靠性,每一款产品发布前都要通过多轮严苛的测试用例. 说明:本文中的MySQL,如果不做特殊说明,指的是开源社区版MySQL. 华为云数据库新版本在发布之前,会 ...

  2. TCP的粘包、拆包及解决方法

    TCP粘包,拆包及解决方法 粘包拆包问题是处于网络比较底层的问题,在数据链路层.网络层以及传输层都有可能发生.我们日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生粘包拆包问题,因 ...

  3. 微信小程序商品发布

    <!--pages/good/good.wxml--> <!--商品发布--> <form bindsubmit="formSubmit"> & ...

  4. laravel7 搜索关键字标红及手机号,身份证号隐藏

    控制器代码 public function index(Request $request) { //接受搜索关键字 $word = $request->get('name'); $start = ...

  5. 如何创建一个 Cocoapods 插件

    原文链接 前言 我们在使用 Cocoapods 过程中,如果发现它未能满足我们的要求该怎么办呢? 最简单的粗暴的办法就是 fork 一份 Cocoapods 源码,然后自己公司内部或者个人直接针对源码 ...

  6. MySQL 8.0安装以及初始化错误解决方法

    MySQL 8.0 安装配置及错误排查 官网下载 CentOS7环境下的具体安装步骤 初始化MySQL发生错误的解决方法 忘记数据库root密码 官网下载 mysql官网下载链接:https://de ...

  7. .NET 6学习笔记(2)——通过Worker Service创建Windows Service

    通过Visual Studio中的Windows Service模板,我么可以创建.NET Framework版本的Windows Service,网络上对此已有详细且丰富的各路教程.但在我们升级到. ...

  8. 使用阿里云镜像站NTP服务搭建NTP服务器(基于CentOS 7系统)

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.NTP服务器介绍 网络时间协议(Network Time Protocol,NTP)服务器,也就是日常所说的NTP服务器,用来提供同步时间服务 ...

  9. centos根目录扩容

    一.扫描磁盘 若已在虚拟机增加了磁盘且没看到磁盘 运行下面的命令来查找系统中所有的主机总线编号: # ls /sys/class/scsi_host 得到主机总线编号后,运行以下命令来发现新的磁盘: ...

  10. springcloud学习03-spring cloud eureka(上)

    对eureka一个大概介绍:https://blog.csdn.net/u010623927/article/details/88762525 这里面有个我做dubbo时的一个理解的错误:服务注册中不 ...