H5文件上传

简介: H5文件上传

在工作中,文件上传功能是经常遇到的问题,但是我们基本上都是用组件去解决文件上传的问题,很少有人会去了解和通过原生的方式去手动实现一下文件上传,今天来通过原生的方式进行实现一下完整的操作

页面结构

首先我们写一个input文件选择框,用于选择文件,还可以给input添加上multiple属性开启多选,在写一个button按钮用于操控文件上传,上面绑定一了个FileUpload方法,里面是文件上传的操作

<input type="file" id="file" multiple/>
<button onclick="FileUpload()">上传文件</button>

文件上传

我们通过js获取id元素的方法获取到文件上传框的DOM元素,在根据DOM元素下的files属性获取到上传的文件信息列表,里面每一项都是一个file对象,包含了文件名字,文件大下,文件类型等信息,然后创建一个formData构造的函数实例,便于我们操作或存储file文件向后端传输,由于我们获取到的file文件列表是一个伪数组,所以我们这里使用Array.form方法将他转化为真正的数组,在使用数组上的map方法进行循环使用formData实例上的append方法往里面追加数据,追加后的数据可以通过formData实例上的get方法进行读取文件信息,这里我们无法通过正常的console.log方法读取到formData实例上的数据,因为formData构造函数是一种特殊的对象类型,无法进行序列化数据,所以我们通过console.log打印的直接就是formData原型,将数据追加进该实例之后,就可以通过后端的接口向后端进行传输

function FileUpload() {
            const files = document.getElementById('file').files;
            const formData = new FormData();
           Array.from(files).map(R=>{
                console.log(R);
                formData.append('photos', files);
            })
            //读取
           // formData.get("file");
            //上传文件代码省略
        }

在发送请求的时候我们需要注意,我们需要将请求头的content-type属性设置为multipart/form-data,设置成该属性之后我们往后端传递就会是一个文件流,后端进行处理的话也比较方便

坚持努力,无惧未来!

相关文章
|
开发框架 移动开发 小程序
uniapp实现上传文件功能
uniapp实现上传文件功能
1799 0
|
Web App开发 数据可视化 JavaScript
【数学建模竞赛】超赞作图网站分享Apache ECharts
【数学建模竞赛】超赞作图网站分享Apache ECharts
787 2
|
移动开发 前端开发 数据管理
分享83个Html后端模板,总有一款适合您
分享83个Html后端模板,总有一款适合您
774 2
|
1月前
|
数据建模 网络安全
一文分清阿里云个人测试证书:免费版与 Pro 版费用、有效期、权益全梳理
阿里云个人测试SSL证书分免费版(90天有效期,年限20张)和Pro版(付费18元/张,有效期6个月)。两者均为DV型,仅支持普通域名,不支持.edu/.gov等;Pro版享人工客服,免费版无。阿里云SSL证书官网:https://t.aliyun.com/U/RpER2D
|
JavaScript 前端开发 jenkins
【前端】vue项目打包Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-db@latest解决方案
【前端】vue项目打包Browserslist: caniuse-lite is outdated. Please run: npx update-browserslist-db@latest解决方案
4537 0
|
人工智能 监控 数据可视化
企业级LLMOps落地指南:蜂巢架构×可视化编排实战
本文将基础的单应用扩展成多应用,并实现工作流组件,包括:多应用模块设计、工作流模块设计、LangGraph实现图应用、前端Vue-Flow组件使用、工作流转LLM工具设计思路、关联工作流登技巧。
665 3
企业级LLMOps落地指南:蜂巢架构×可视化编排实战
|
JavaScript 前端开发 数据管理
使用Sortable.js库 实现Vue3 elementPlus 的 el-table 拖拽排序
使用Sortable.js库 实现Vue3 elementPlus 的 el-table 拖拽排序
5123 1
|
前端开发 安全 JavaScript
UniApp 中的路由守卫与拦截器:守护应用的每一步
UniApp 中的路由守卫与拦截器:守护应用的每一步
2471 4

热门文章

最新文章