zoukankan      html  css  js  c++  java
  • 图片FormData上传

    var base64String = /*base64图片串*/;
    
    //这里对base64串进行操作,去掉url头,并转换为byte
    var bytes = window.atob(base64String.split(',')[1]);
    
    //处理异常,将ASCII码小于0的转换为大于0,这里有两种写法
    第一种:
    var ab = new ArrayBuffer(bytes.length);
    var ia = new Uint8Array(ab);
    for(var i = 0; i < bytes.length; i++){
        ia[i] = bytes.charCodeAt(i); //这里有点疑惑,ia是怎么改变ab的?注:①
    }
    //Blob对象
    var blob = new Blob([ab], {type: 'image/jpeg'}); //type为图片的格式
    
    //FormData对象
    var fd = new FormData();
    //TDOD Ajax或者其他方式上传FormData对象
    
    //FormData对象接受三个参数,第三个参数为文件名,通常我们只传前两个参数,第三个参数不传则使用默认文件名,这里使用的Blob对象,所以需要一个文件名,用时间戳代替。
    fd.append('file',blob, Date.now() + '.jpg');
    第二种:
    var array = [];
    for(var i = 0; i < bytes.length; i++){
        array.push(bytes.charCodeAt(i));
    }
    var blob = new Blob([new Uint8Array(array)], {type: 'image/jpeg'});
    var fd = new FormData();
    fd.append('file',blob, Date.now() + '.jpg');
    //TDOD Ajax或者其他方式上传FormData对象

    原理:利用ArrayBuffer、Blob和FormData进行图片上传

  • 相关阅读:
    log4j 悟寰轩
    初学PHP 悟寰轩
    java基本语法注意问题 悟寰轩
    HTTP协议基础 悟寰轩
    SSHweb.xml详解 悟寰轩
    windows和linux查找被入侵后留下的后门文件 悟寰轩
    MFC Link problem
    Manually Walking a Stack
    linux试用(2)安装 mplayer, g++
    子集和问题
  • 原文地址:https://www.cnblogs.com/ckAng/p/12036004.html
Copyright © 2011-2022 走看看