JS - 写一个简单的静态页面支持上传文件并转Base64编码

news2024/11/23 15:19:19

JS - 写一个简单的静态页面支持上传文件并转Base64编码

  • 前言
  • 静态页面代码

前言

我后端有一个上传文件并判断其文件类型的功能,我希望拿不同的文件流进行测试,但是文件的请求体又得获得。拿来作为参数传递。因此写了个静态文件去获取。

静态页面代码

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Upload File</title>
</head>
<body>
    <input type="file" id="fileInput">
    <button onclick="uploadFile()">Upload(等待几秒)</button>
    <br>
    <textarea id="base64Output" rows="100" cols="100"></textarea>
    <script>
        function uploadFile() {
            var fileInput = document.getElementById('fileInput');
            var file = fileInput.files[0];
            var reader = new FileReader();
            reader.onload = function() {
                var bytes = new Uint8Array(reader.result);
                var base64Str = arrayBufferToBase64(bytes.buffer);
				document.getElementById('base64Output').value = base64Str
            };
            reader.readAsArrayBuffer(file);
        }

        function arrayBufferToBase64(buffer) {
            var binary = '';
            var bytes = new Uint8Array(buffer);
            for (var i = 0; i < bytes.byteLength; i++) {
                binary += String.fromCharCode(bytes[i]);
            }
            return btoa(binary);
        }
    </script>
</body>
</html>

效果如下:
在这里插入图片描述
等待几秒之后,点击Upload按钮,对应的Base64编码出来了:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/570958.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32用CUBEMx生成工程, 不使用CMSIS, 自己移植freertos

目录 完整工程代码: 零. 参考 一. 外围配置 二, 放进来freertos源代码 三.修改makefile 四. 解决修改函数重定义报错 五. 让Freertos的systick工作起来 六. 验证 完整工程代码: ​​​​​​https://download.csdn.net/download/u011493332/87821404 零. 参考 正在入门…

虚拟机磁盘扩容及重新分区方法

创建虚拟机的时候&#xff0c;如果分配的磁盘过小&#xff0c;在后续的使用时可能需要进行扩容&#xff0c;在扩容后你会发现好像磁盘并没有变大&#xff0c;这时候就需要进行重新分区 一、虚拟机扩容 在将需要扩容的虚拟机关机后&#xff0c;点击VMware的菜单栏中的虚拟机&…

面试:前端安全之XSS及CSRF

一、概念&#xff1a; XSS攻击全称跨站脚本攻击(Cross Site Scripting); CSRF&#xff08;Cross-site request forgery&#xff09;跨站请求伪造&#xff0c;也被称为“One Click Attack”或者Session Riding&#xff0c;通常缩写为CSRF或者XSRF;是一种挟制用户在当前已登录的…

合同管理系统对企业的重要性,不仅能降本增效,还能规避风险

企业管理合同有哪些通病 企业在管理合同会经常遇到在约定条款时存在空泛、笼统的情况&#xff0c;导致在实际操作时产生争议&#xff0c;没有系统化进行操作规范&#xff0c;由于签订合同的时候可能存在一些法律问题&#xff0c;如未经授权签署的合同、涉及侵犯他人权益的条款…

港联证券|北向资金为何大量买入?哪些股容易受到青睐?

北向资金由于流动情况透明且披露及时&#xff0c;一直备受投资者们的关注。那么北向资金为何大量买入&#xff1f;哪些股容易受到青睐&#xff1f;港联证券也为大家准备了相关内容&#xff0c;以供参考。 北向资金为何大量买入&#xff1f; 1、中国经济增长预期较好。这为北向…

Prettier Eslint Stylelint Husky lint-staged

关于代码格式的讨论数不胜数&#xff0c;个人认为没有绝对的对与错&#xff0c;代码只要始终遵守可读性&#xff0c;可拓展性强这两点我认为就是优秀的代码。 如果是个人项目那就没有什么问题&#xff0c;但是如果涉及到多人开发&#xff0c;就不可避免的遇到代码风格迥异&…

uni-app 中如何实现触底加载功能

&#x1f468;&#x1f3fb;‍&#x1f4bb; 热爱摄影的程序员 &#x1f468;&#x1f3fb;‍&#x1f3a8; 喜欢编码的设计师 &#x1f9d5;&#x1f3fb; 擅长设计的剪辑师 &#x1f9d1;&#x1f3fb;‍&#x1f3eb; 一位高冷无情的编码爱好者 大家好&#xff0c;我是全栈 …

队列与C++中的std::queue详解(多图超详细)

文章目录 队列&#xff08;Queue&#xff09;什么是队列队列的基本操作和应用1. 入队2. 出队3. 入队出队的复杂度和应用 类模板std::queue形参T和Container成员函数1. 元素访问2. 容量3. 队列的修改 用法示例 队列&#xff08;Queue&#xff09; 什么是队列 队列就是一种线性…

单模光纤三维模场分布动画的MATLAB实现

利用MATLAB的动画功能&#xff0c;我们可以把上一篇中绘制的三维分布图变为动画 clear close all clcV 2.4000; U 1.6453; W 1.7473;Npoint 501; Rx 5; Ry 5; x linspace(-Rx,Rx,Npoint); y linspace(-Ry,Ry,Npoint); [X Y] meshgrid(x,y); R sqrt(X.^2Y.^2);E1 …

Android自定义View:超过最大高度时支持滚动并且解决滑动冲突的TextView

VerticalScrollTextView&#xff1a;超过最大高度时支持滚动并且解决滑动冲突的TextView 正如标题所说&#xff0c;这个自定义TextView在它的行数超过最大行数或是高度超过最大高度限制时&#xff0c;会将TextView设置为可纵向滑动的状态&#xff0c;如果没有超过限制&#xf…

python 的APScheduler配置的定时任务会被Miss掉

背景 python 的APScheduler配置的定时任务会被Miss掉&#xff0c;经常在控制台收到一些Miss的告警信息&#xff0c;就觉得是任务太多导致的&#xff0c;为了定位到具体的原因&#xff0c;看了一些源码&#xff0c;了解到了定时任务的6大模块的协同工作模式。异常信息及来源 异…

01.GATK人种系变异最佳实践SnakeMake流程:WorkFlow简介

<~生~信~交~流~与~合~作~请~关~注~公~众~号生信探索> 学习的第一个GATK找变异流程&#xff0c;人的种系变异的短序列变异&#xff0c;包括SNP和INDEL。写了一个SnakeMake分析流程&#xff0c;从fastq文件到最后的vep注释后的VCF文件&#xff0c;关于VCF的介绍可以参考上一…

Windows 安装 GCC

文章目录 GCC 是什么&#xff1f;GCC 和 gcc 什么关系&#xff1f;Windows 安装 GCC选型下载安装配置环境变量验证 参考文献 GCC 是什么&#xff1f; GCC&#xff08;GNU Compiler Collection&#xff09;是一个开源的编译器套件&#xff0c;由 GNU 项目开发和维护。 GNU 编译…

悠可集团再获金鼠标3项大奖,自研营销工具助推全渠道数字营销

5月19日,第14届金鼠标数字营销大赛评选结果揭晓,悠可集团斩获3项大奖,其中悠可集团被评为“年度数字营销杰出代理商”,悠可DTC团队自主研发的智能广告投放引擎Turbo Media及点正科技申报的KOL优先自动化工具均荣获“年度最佳数字营销工具”奖项。 据主办方介绍,本届金鼠标数字营…

java基础 - jvm 堆、栈、方法区 java 内存模型

一、 概览 在进入主题前&#xff0c;我们先了解一些相关的知识&#xff0c;方面后面对运行时数据区进行分类。 进程中&#xff0c;有很多数据是多线程之间共享的&#xff0c;线程在执行时&#xff0c;会先从主存中读取数据&#xff0c;然后复制一份到高速缓存中&#xff0c;当…

【Docker容器】Docker安装Kibana详细步骤(看完这一篇就够啦!)

前言 安装Kibana的版本一定要跟ElaticSearch的版本是一样的&#xff0c;这样才不会容易出问题。 安装ElasticSearch请点击以下链接前去学习。 【Docker容器】Docker安装ElasticSearch详细步骤(看这一篇就够啦&#xff01;) 安装 1.访问镜像官网 https://hub.docker.com/ 搜索…

Java的内存模型(Java Memory Mode,JMM)

并发编程模型的两个关键问题 线程之间如何通信及线程之间如何同步。 线程之间如何通信&#xff1a;共享内存&#xff0c;消息传递线程之间如何同步通信是指线程之间以何种机制来 交换信息同步是指程序中用于控制不同线程间 操作发生相对顺序 的机制在共享内存的并发模型里&a…

【PHP图片托管】免费CFimagehost图床源码搭建私人图床 - 无需数据库

文章目录 1.前言2. CFImagehost网站搭建2.1 CFImagehost下载和安装2.2 CFImagehost网页测试2.3 cpolar的安装和注册 3.本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;3.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 4.公网访问测…

C#入门:编写运行第一个Windows窗体应用程序Helloworld_WinForm

下载及安装Visual Studio的链接&#xff0c;具体见C#入门&#xff1a;编写运行第一个C#程序Helloworld 目录 下载.NET桌面开发组件创建新项目添加控件编辑程序运行查看效果补充 下载.NET桌面开发组件 Visual Studio中需下载安装.NET桌面开发组件。 创建新项目 创建项目&…

【2】Jmeter获取token,模拟多用户并发及token存储文本文件

按以下步骤来&#xff0c;以下各种处理程序的放置位置很重要&#xff01;&#xff01;不然会出现各种问题&#xff1a; 1、setup线程组 前置获取token的接口&#xff08;login&#xff0c;以下都用login表示获取token接口&#xff09;请求&#xff0c;获取类似token等后续需要…