BASE64处理文件

技术BASE64处理文件 BASE64处理文件Base64:
Base64是一种编码方式,基于64个ASCII字符来表示二进制数据,Base64将8个bit为一个单位的字节数据拆分为以6个bit为一个单

BASE64处理文件

Base64:

Base64是一种编码方式,基于64个ASCII字符来表示二进制数据,Base64将8个bit为一个单位的字节数据拆分为以6个bit为一个单位的二进制片段,每6个bit单位对应Base64索引表中的一个字符;

Base64中64个可打印字符包括 字母 A-Z; a-z; 数字 0-9;特殊字符 +;/;数值分别是0-63;共64个

# JS 处理 上传图片 Base64编码 展示

1 %@页面内容类型=' text/html;charset=UTF-8 '语言='java' %

2 %@ taglib前缀=' c ' uri=' http://www。弹簧框架。组织/标签' %

3 html

四头

5标题主页/标题

6脚本src=' https://代码。jquery。com/jquery-3。1 .1 .量滴js /脚本

7 !-引入元素用户界面样式-

8/头

9车身

10个分区

11区

12区

13 img src=' style=' display : no '

14输入类型='变更时的' file '=' uploadImg();'名称='文件'

15 /div

16 /div

17 /div

18脚本

19

20函数uploadImg(){ 0

21 var文件=文档。query selector(' input[type=file]').文件[0];

22 var reader=new FileReader();

23个读者。onload=function(){ 0

24美元(' #imgBase ').attr('style ',' display : inline-block ');

25美元(' #imgBase ').attr('src ',阅读器。结果);

26 }

27 if(文件){ 0

28 reader.readAsDataURL(文件);

29 }

30 }

31/脚本

32/车身

33 /html

# JS 项目中的图片通过Base64编码 展示

1 %@页面内容类型=' text/html;charset=UTF-8 '语言='java' %

2 %@ taglib前缀=' c ' uri=' http://www。弹簧框架。组织/标签' %

3 html

四头

5标题主页/标题

6脚本src=' https://代码。jquery。com/jquery-3。1 .1 .量滴js /脚本

7 !-引入元素用户界面样式-

8/头

9车身

10个分区

11区

12区

13 img src=' style=' display : no '

14 % - 项目中的图片- %

15输入id='osn_search_input '类型='隐藏'值='c:url值='/img/hello.png'/'

16 /div

17 /div

18 /div

19脚本

20 var Image=新图像();

21形象。src=$(' # osn _ search _ input ').val();

22形象。onload=function(){ 0

23 var base=setImageBase64(图像);

24美元(' #imgBase ').attr('style ',' display : inline ');

25美元(' #imgBase ').attr('src ',base);

26控制台。原木(基础);

27 };

28

29函数setImageBase64(图像){ 0

30 var canvas=文档。create element(' canvas ');

31 canvas.width=imag

e.width;
32 canvas.height = image.height;
33 var ctx = canvas.getContext('2d');
34 ctx.drawImage(image, 0, 0, image.width, image.height);
35 var ext = image.src.substring(image.src.lastIndexOf(".") + 1).toLowerCase();
36 var imgUrl = canvas.toDataURL("image/" + ext);
37 return imgUrl;
38 }
39 /script
40 /body
41 /html

# 从服务器获取图片 并进行Base64 编码 返回页面

package com.mvc.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.mvc.model.LoginUser;
import com.mvc.model.User;
import com.mvc.service.LoginService;
import jdk.internal.util.xml.impl.Input;
import org.omg.CORBA.StringHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.View;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import javax.imageio.ImageIO;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@Controller
public class LoginController {
//    private static final Logger log = LoggerFactory.getLogger(LoginController.class);
    @Autowired
    @Qualifier("asyncLoginService")
    private LoginService loginService;
    @RequestMapping("qrcode")
    public String qrcode(HttpServletResponse response,HttpServletRequest request){
        System.out.println("begin qrcode...");
        return "qrcode";
    }
    @RequestMapping("getQRCode")
//    @ResponseBody
    public void getQRCode(HttpServletResponse response,HttpServletRequest request, PrintWriter pw, Long fileId){
        System.out.println("begin getQRCode..." + fileId);
byte[] bytes = null; try (FileInputStream fis = new FileInputStream(filePath)){ bytes = new byte[fis.available()]; fis.read(bytes); } catch (Exception e) { // 抛异常 } BASE64Encoder encoder = new BASE64Encoder(); String encode = encoder.encode(bytes); response.setContentType("image/jpeg"); response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setDateHeader("Expire", 0); pw.write(encode); pw.flush(); pw.close(); } }
%@ page contentType="text/html;charset=UTF-8" language="java" %
%@ taglib prefix="c" uri="http://www.springframework.org/tags" %
html
head
    titleHOME/title
    script src="https://code.jquery.com/jquery-3.1.1.min.js"/script
    !-- 引入 element ui 样式 --
/head
body
div
    div
        input type="button" value="show" onclick="showImg();"/
    /div
    div 
        p style="color: red"二维码/p
        div  style="display: none"
            div class="img-div" style="display: inline"
                input type="hidden" value="111111"/
            /div
        /div
    /div
/div
script
    function showImg() {
        var divs = document.getElementsByClassName("img-div")[0];
        // 每次点击都删除之前的图片
        for (var i = 1; i  divs.childElementCount; i++) {
            console.log(divs.children);
            divs.children[i].remove();
        }
        var fileId = divs.firstElementChild.value;
        console.log(fileId);
        var img = document.createElement("img");
        divs.appendChild(img);
        var src = document.createAttribute("src");
        img.setAttributeNode(src);
        divs.style.cssText = "display:inline;";
        img.style.cssText = "width: 200px; height: 200px;";
        $.ajax({
            url: "getQRCode",
            type: "get",
            dataType: "text",
            data: {
                fileId: fileId
            },
            success: function (data) {
                img.src = "data:image/jpeg;base64," + data;
            }
        });
        var div = document.getElementById("div");
        div.style.cssText = "display:inline;";
    }
/script
/body
/html

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/157177.html

(0)

相关推荐

  • 青菜炒鸡蛋的做法,菠菜炒鸡蛋的制作方法是什么

    技术青菜炒鸡蛋的做法,菠菜炒鸡蛋的制作方法是什么菠菜炒鸡蛋是一道地道的家常菜。但是要想做得好吃青菜炒鸡蛋的做法,也不是像辣椒炒鸡蛋那样简单混合一炒就好的。菠菜炒鸡蛋的家常做法:1、菠菜摘去黄叶洗净。
    2、坐锅烧水,水开放

    生活 2021年10月27日
  • mysql如何查询数据表是否存在

    技术mysql如何查询数据表是否存在这篇文章主要为大家展示了“mysql如何查询数据表是否存在”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql如何查询数据表是否存在”

    攻略 2021年12月2日
  • Linux前台的程序如何转到后台执行并且关闭终端而不杀死命令

    技术Linux前台的程序如何转到后台执行并且关闭终端而不杀死命令这篇文章给大家介绍Linux前台的程序如何转到后台执行并且关闭终端而不杀死命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。过SSH或

    攻略 2021年10月21日
  • 用眼卫生,正确的用眼卫生习惯有哪些

    技术用眼卫生,正确的用眼卫生习惯有哪些1.连续近距离用眼时间不能过长,应控制在40-50分钟用眼卫生。课间休息时要注意放松眼百睛,应到教室外活动或凭窗远眺或闭目养神。 2. 看电视或操作电脑时间不能过长。连续看电视或操作

    生活 2021年10月23日
  • 基于Protobuf共享字段的分包和透传零拷贝技术

    技术基于Protobuf共享字段的分包和透传零拷贝技术 基于Protobuf共享字段的分包和透传零拷贝技术https://mp.weixin.qq.com/s/isOzeuwsn_-5TUqsLcgTn

    礼包 2021年11月11日
  • SQL中集合运算符有哪些

    技术SQL中集合运算符有哪些这篇文章主要为大家展示了“SQL中集合运算符有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“SQL中集合运算符有哪些”这篇文章吧。1、unio

    攻略 2021年12月13日