HTML5-简单文件操作

文件操作

简介

概念:可以通过file类型的input控件或者拖放的方式选择文件进行操作
语法格式:

<input type="file" multiple>

属性

  • multiple:表示是否选择多个文件

  • accept:用于设置文件的过滤类型(MIME类型)

    如果想要同时设置多个过滤类型,可以用英文逗号(,)隔开

    <input type="file" accept="image/jpeg,image/png" />
    

常见的acept属性取值/MIME类型

属性值说明
image/jepgJEPG图片
image/pngPNG图片
image/gifGIF图片
text/plainTXT文件
text/htmlHTML文件
text/cssCSS文件
text/JavaScriptJS文件
text/xmlXML文件
audio/mpegMP3文件
audio/mp4MP4文件
application/mswordWord文件
application/vnd.ms-powerpointPPT文件
application/vnd.ms-excelExcel文件
application/pdfPDF文件
image/*所有图片文件
audio/*所有声音文件
video/*所有视频文件

实例

<form action=""> 
<!-- 选择单个文件 -->
<input type="file"/><br/>
<!-- 选择多个文件 -->
<input type="file" multiple />
</form>

运行结果
在这里插入图片描述

注意:为元素添加multiple属性后,就可以选择多个文件了。当选择成功后,按钮右侧不再显示文件的名称,而是显示文件的总量。当鼠标指针移到上面时,就会显示全部上传文件的详细列表

File对象

概念:在文件上传元素中,将会产生一个FileList对象,这是一个类数组对象,表示所有文件的集合。

其中,每一个文件就是一个File对象

想要获取某一个File文件对象

  • 首先需要获取FileList对象

  • 然后通过数组下标形式来获取

File对象属性

属性说明
name文件名称
type文件类型
size文件大小(单位为B)
lastModifiedDate文件最后的修改时间

实例:File对象的属性

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>file对象的属性</title><script>window.onload=function(){//获取FileList对象var oFile=document.getElementById("file");oFile.onchange=function(){//获取第1个文件,即File对象var file=oFile.files[0];console.log("图片名称为:"+file.name);console.log("图片大小为:"+file.size+"B");console.log("图片类型为:"+file.type);console.log("修改时间为:"+file.lastModifiedDate);};}</script></head><body>		<input type="file" id="file" accept="image/*" multiple /></body>
</html>

运行结果
在这里插入图片描述

实例:转化单位

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>转化单位</title><script>window.onload=function(){var oFile=document.getElementById("file");oFile.onchange=function(){//获取第一个文件var file=oFile.files[0];//将单位"B"转化为"KB"var size=file.size/1024;var unitArr=["KB","MB","GB","TB"];//转化单位for(var i=0;size>1;i++){var fileSizeString=size.toFixed(2)+unitArr[i];size/=1024;}//输出结果console.log("图片大小为:"+fileSizeString);};}</script></head><body><input type="file" name="file" id="file" accept="image/*" /></body>
</html>

运行结果
在这里插入图片描述

FileReader对象

概念:FileReader对象作为文件API用于读取文件。

FileReader对象可以读取文件中的数据和包含读取结果的事件模型。

FileReader对象方法

方法说明
readAsText将文本读取为“文本”
readAsDataURL将文本读取为"DataURL"
readAsBinaryString()将文本读取为“二进制编码“
readAsArrayBuffer()将文本读取为一个”ArrayBuffer对象“
abort()中止读取操作

FileReader对象事件

事件说明
onabort中断时触发
onerror出错时触发
onload文件读取成功完成时触发
onloadend读取完成触发,无论成功或失败
onloadstart读取开始时触发
onprogress在读取数据过程中周期性调用

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Sharding-JDBC快速使用【笔记】

1 引言 最近在使用Sharding-JDBC实现项目中数据分片、读写分离需求&#xff0c;参考官方文档&#xff08;Sharding官方文档&#xff09;感觉内容庞杂不够有条理&#xff0c;重复内容比较多&#xff1b;现结合项目应用整理笔记如下供大家参考和自己回忆使用&#xff1b; 在…

前端uniapp的tab选项卡for循环切换、开通VIP实战案例【带源码/最新】

目录 效果图图1图2 源码最后 这个案例是uniapp&#xff0c;同样也适用Vue项目&#xff0c;语法一样for循环&#xff0c;点击切换 效果图 图1 图2 源码 直接代码复制查看效果 <template><view class"my-helper-service-pass"><view class"tab…

实时数据处理概述与Spark Streaming简介

实时数据处理已经成为当今大数据时代的一个重要领域&#xff0c;它使组织能够及时分析和采取行动&#xff0c;以应对不断变化的数据。Spark Streaming是Apache Spark生态系统中的一个模块&#xff0c;专门用于实时数据处理。本文将深入探讨实时数据处理的概念&#xff0c;并介绍…

[C#]C# OpenVINO部署yolov8图像分类模型

【官方框架地址】 https://github.com/ultralytics/ultralytics.git 【算法介绍】 YOLOv8 抛弃了前几代模型的 Anchor-Base。 YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来&#xff0c;领域内的研究者们…

LeetCode 2807. 在链表中插入最大公约数

给你一个链表的头 head &#xff0c;每个结点包含一个整数值。 在相邻结点之间&#xff0c;请你插入一个新的结点&#xff0c;结点值为这两个相邻结点值的 最大公约数 。 请你返回插入之后的链表。 两个数的 最大公约数 是可以被两个数字整除的最大正整数。 示例 1&#xf…

【亚马逊云科技】自家的AI助手 - Amazon Q

写在前面&#xff1a;博主是一只经过实战开发历练后投身培训事业的“小山猪”&#xff0c;昵称取自动画片《狮子王》中的“彭彭”&#xff0c;总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域&#xff0c;如今终有小成…

NVMe SSD IO压力导致宕机案例解读-1

近日&#xff0c;小编在内核pci模块变更提交记录里面&#xff0c;看到一条由联想工程师提交的一份变更&#xff0c;主要是针对DMA相关优化。小编根据提交内容&#xff0c;根据自己的理解分享给大家。&#xff08;原始git地址获取&#xff0c;请在后台私信输入关键字“IO宕机”&…

【模拟电路】EDA软件、绘制原理图和PCB

一、EDA软件 二、常用的PCB的EDA软件 三、PCB生产工艺制造流程 四、国产嘉立创EDA专业版使用 五、EDA软件-绘制开关电路原理图 六、原理图转PCB绘制 七、检查DRC 八、PCB下单流程 一、EDA软件 EDA是电子设计自动化&#xff08;Electronic Design Automation&#xff09;的缩写…

清风数学建模排版

Overview 链接&#xff1a;https://pan.baidu.com/s/11QBw3zBFNicwQWvWCfW1Gg?pwdepnz 提取码&#xff1a;epnz Latex 范文排版练习 b站刘海洋latex工作室&#xff0c;待还愿 Word基础 Word VBA&#xff0c;待还愿 fnF4&#xff1a;重复上一步操作 ctrlY&#xff1a;恢…

视频通话录制 方案 教程

一些基本概要 1 市面流行的音视频产品&#xff0c;都包含一对一、一对多、多对多通话&#xff0c;云端录制等这些基本功能&#xff0c;有些厂商支持本地服务录制。 2 本地服务录制&#xff0c;云端录制区别 两个录制区别在于&#xff0c;本地服务端录制的 SDK 要求部署在 …

简易机器学习笔记(八)关于经典的图像分类问题-常见经典神经网络LeNet

前言 图像分类是根据图像的语义信息对不同类别图像进行区分&#xff0c;是计算机视觉的核心&#xff0c;是物体检测、图像分割、物体跟踪、行为分析、人脸识别等其他高层次视觉任务的基础。图像分类在许多领域都有着广泛的应用&#xff0c;如&#xff1a;安防领域的人脸识别和…

对技术行业的深度思考

技术行业是当今世界最为热门和发展迅猛的领域之一。无论是互联网、人工智能还是区块链&#xff0c;技术的快速发展正在改变着我们的生活和社会。然而&#xff0c;我们是否真正思考过技术在我们生活中的影响和意义&#xff1f;本文将对技术行业展开深度思考&#xff0c;探讨其带…