js 图片上传给后台的3种格式
1. file格式 (创建formData来完成file上传)
- 我们的接口需求:
代码:
<input type="file" id="imgfile" accept="image/jpeg, image/png, image/jpg" >- $("#imgfile").change(function () {
- var formData = new FormData();
- $.each($('#imgfile')[0].files, function (i, file) {
- formData.set('idcard', file); //idcard 字段 根据自己后端接口定
- });
- //processData: false, contentType: false,多用来处理异步上传二进制文件。
- that.$indicator.open();
- $.ajax({
- url: 'http://wjtest.jecinfo.cn:9090/indentity/check',
- type: 'POST',
- data: formData, // 上传formdata封装的数据
- dataType: 'JSON',
- cache: false, // 不缓存
- processData: false, // jQuery不要去处理发送的数据
- contentType: false, // jQuery不要去设置Content-Type请求头
- success:function (data) {
- if(data.code =='0'){
- }
- }
- });
- });
2. base64格式
- <input type="file" id="imgfile">
- var base64Pic = ''
- document.getElementById('imgfile').onchange = function(){
- var fileReader = new FileReader();
- fileReader.readAsDataURL(this.files[0]);
- fileReader.onload = function(){
- base64Pic = fileReader.result;
- console.log(base64Pic ) //base64 可以直接放在src上 预览
- }
3. Blob流格式
base64转换为blob流
- function dataURItoBlob(base64Data) {
- //console.log(base64Data);//data:image/png;base64,
- var byteString;
- if(base64Data.split(',')[0].indexOf('base64') >= 0)
- byteString = atob(base64Data.split(',')[1]);//base64 解码
- else{
- byteString = unescape(base64Data.split(',')[1]);
- }
- var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];//mime类型 -- image/png
- // var arrayBuffer = new ArrayBuffer(byteString.length); //创建缓冲数组
- // var ia = new Uint8Array(arrayBuffer);//创建视图
- var ia = new Uint8Array(byteString.length);//创建视图
- for(var i = 0; i < byteString.length; i++) {
- ia[i] = byteString.charCodeAt(i);
- }
- var blob = new Blob([ia], {
- type: mimeString
- });
- return blob;
- }
更多参考链接: https://blog.csdn.net/qq_34664239/article/details/94595508
https://blog.csdn.net/qq_34664239/article/details/94601498
js 图片上传给后台的3种格式的更多相关文章
- MVC 手机端页面 使用标签file 图片上传到后台处理
最近刚做了一个头像上传的功能,使用的是H5 的界面,为了这个功能搞了半天的时间,找了各种插件,有很多自己都不知道怎么使用,后来只是使用了一个标签就搞定了:如果对样式没有太大的要求我感觉使用这个就足够了 ...
- 前端js图片上传
前端js图片上传,原理用input type="file"获取图片然后把图片转换成base64编码传到后台. 图片上传 <!DOCTYPE html><html& ...
- 兼容好的JS图片上传预览代码
转 : http://www.codefans.net/articles/1395.shtml 兼容好的JS图片上传预览代码 (谷歌,IE11) <html xmlns="http:/ ...
- layui图片上传之后后台如何修改图片的后缀名以及返回数据给前台
const pathLib = require('path');//引入node.js下的一个path模块的方法,主要处理文件的名字等工作,具体可看文档 const fs = require(''fs ...
- JS图片上传预览插件制作(兼容到IE6)
其实,图片预览功能非常地常见.很意外,之前遇到上传图片的时候都不需要预览,也一直没有去实现过.现在手上的项目又需要有图片预览功能,所以就动手做了一个小插件.在此分享一下思路. 一.实现图片预览的一些方 ...
- 微信JS图片上传与下载功能--微信JS系列文章(三)
概述 在前面的文章微信JS初始化-- 微信JS系列文章(一)中已经介绍了微信JS初始化的相关工作,接下来本文继续就微信JS的图片上传功能进行描述,供大家参考. 图片上传 $(function(){ v ...
- js图片上传 的方法
先规划出框架 <div id="AQA" style="width:300px; height:200px; background-color:aquamarine ...
- js 图片上传
可能很多不熟悉的图片上传的同学会觉得有点懵,其实做过一次你就会发现特别的简单. 只是一个formData格式的表单提交,把地址写到 action = "" 里面就可以了,当然你可以 ...
- 一个node.js图片上传显示小应用
文件结构如下: 实现的功能有: 可以通过浏览器使用. 当请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可以选择一个图片并提交表单,随后文件将被上 ...
随机推荐
- 如何从头到脚彻底解决一个MySQL Bug
摘要:为了保障华为云GaussDB产品的可靠性,每一款产品发布前都要通过多轮严苛的测试用例. 说明:本文中的MySQL,如果不做特殊说明,指的是开源社区版MySQL. 华为云数据库新版本在发布之前,会 ...
- TCP的粘包、拆包及解决方法
TCP粘包,拆包及解决方法 粘包拆包问题是处于网络比较底层的问题,在数据链路层.网络层以及传输层都有可能发生.我们日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生粘包拆包问题,因 ...
- 微信小程序商品发布
<!--pages/good/good.wxml--> <!--商品发布--> <form bindsubmit="formSubmit"> & ...
- laravel7 搜索关键字标红及手机号,身份证号隐藏
控制器代码 public function index(Request $request) { //接受搜索关键字 $word = $request->get('name'); $start = ...
- 如何创建一个 Cocoapods 插件
原文链接 前言 我们在使用 Cocoapods 过程中,如果发现它未能满足我们的要求该怎么办呢? 最简单的粗暴的办法就是 fork 一份 Cocoapods 源码,然后自己公司内部或者个人直接针对源码 ...
- MySQL 8.0安装以及初始化错误解决方法
MySQL 8.0 安装配置及错误排查 官网下载 CentOS7环境下的具体安装步骤 初始化MySQL发生错误的解决方法 忘记数据库root密码 官网下载 mysql官网下载链接:https://de ...
- .NET 6学习笔记(2)——通过Worker Service创建Windows Service
通过Visual Studio中的Windows Service模板,我么可以创建.NET Framework版本的Windows Service,网络上对此已有详细且丰富的各路教程.但在我们升级到. ...
- 使用阿里云镜像站NTP服务搭建NTP服务器(基于CentOS 7系统)
镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.NTP服务器介绍 网络时间协议(Network Time Protocol,NTP)服务器,也就是日常所说的NTP服务器,用来提供同步时间服务 ...
- centos根目录扩容
一.扫描磁盘 若已在虚拟机增加了磁盘且没看到磁盘 运行下面的命令来查找系统中所有的主机总线编号: # ls /sys/class/scsi_host 得到主机总线编号后,运行以下命令来发现新的磁盘: ...
- springcloud学习03-spring cloud eureka(上)
对eureka一个大概介绍:https://blog.csdn.net/u010623927/article/details/88762525 这里面有个我做dubbo时的一个理解的错误:服务注册中不 ...