首页 > 其他分享 >HTML5文件上传操作

HTML5文件上传操作

时间:2023-12-25 17:46:52浏览次数:27  
标签:files 文件 对象 HTML5 File var document 上传

一、File对象


在 HTML5 出现之前,在 Web 上没有文件创建和复制,也没有文件处理,HTML5 规范中包含 3 个文件相关的规范:“文件 API”“文件 API:目录和系统”以及“文件 API:写入器”,文件 API 包含 File 对象、FileList 对象和 FileReader 对象。

为了保障客户端安全,大部分浏览器都未实现“文件 API:目录和系统”和“文件 API:写入器”规范。而“文件 API”主要实现了读取文件,不能写入文件。

  1. File 对象代表一个文件,用来读写文件信息
  2. File 对象继承了 Blob 对象或者说是一种特殊的 Blob 对象,所有可以使用Blob 对象的场合都可以使用
  3. File 对象构造函数
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    文件上传:
    <input type="file" name="file" multiple id="file">
    <input type="button" value="上传文件" id="fileUpload">
    <!-- 指定显示图片的位置 -->
    <div id="box"></div>
    <script>
        // 1、获取文件
        var file = document.querySelector("#file");
        var fileUpload = document.querySelector("#fileUpload");
        var box = document.querySelector("#box");
        // 读取多个文件时,需要使用files属性
        fileUpload.onclick = function(){
            var files = file.files;
            for(var i=0;i<files.length;i++)
            {
                var read = new FileReader();
                read.onload = function()
                {
                    var div = document.createElement("div");
                    div.innerHTML = "<img src='"+this.result+"' class="img"'">
                    box.appendChild(div);
                }
                read.readAsDataURL(files[i]);
            }
        }
    </script>
</body>
</html>

 


浏览器原生提供一个 File() 构造函数,用来生成 File 实例对象:

var file = new File(array,name[,options]);

File 对象配置对象的属性说明如下:

 说明
type 字符串,表示实例对象的 MIME 类型
lastModified 时间戳,表示上次修改的时间,默认为 Date.now()

File 对象的属性和方法如下:

属性名说明
name 文件名或文件路径
size 文件大小(单位:字节)
type 文件的 MIME 类型
lastModified 最后修改时间

二、FileList对象

  1. FileList 对象是一个类似于数组的对象,代表一组选中的文件,每个成员都是一个 File 实例
  2. 文件选择器(<input type="file">)的 files 属性,返回一个 FileList 实例。
  3. 拖拉一组文件时,目标区的 DataTransfer.files 属性,返回一个 FileList 实例
  4. FileList 的实例属性主要是 length,表示包含多少个文件
  5. FileList 的实例方法主要是 item(),用来返回指定位置的实例
  6. FileList 的实例是一个类似于数组的对象,可以直接用方括号运算符,即 myFileList[0] 等同于 myFileList.item(0)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    文件上传:<input type="file" name="file" multiple id="file">
    <input type="button" value="上传文件列表" id="btn">
    <script>
        var btn = document.querySelector("#btn");
        var file = document.querySelector("#file");

        btn.onclick = function () {
            // Alt+shift+f
            //获取多个文件
            var files = file.files;
            for (var i = 0; i < files.length; i++) {
                document.write("<hr>");
                document.write("文件名:" + files[i].name+",");
                document.write("文件大小:" + files[i].size+",");
                document.write("文件修改时间:" + files[i].lastModified+",");
            }
        }
    </script>
</body>
</html>

 

参考文章:http://blog.ncmem.com/wordpress/2023/12/25/html5%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e6%93%8d%e4%bd%9c/

欢迎入群一起讨论

 

 

标签:files,文件,对象,HTML5,File,var,document,上传
From: https://www.cnblogs.com/songsu/p/17926613.html

相关文章

  • gitlab新建一个仓库,然后和本地代码关联,并上传本地代码到仓库中
    1.创建一个gitlab项目的仓库: 如果没有上传任何代码,这里Codetab会自动显示:从本地上传代码到仓库的操作命令:gitinitgitadd./gitcommit-m"firstcommit"gitbranch-Mmastergitremoteaddoriginhttps://oss.lalacorp.com/test-auttestapi/testforq.gitgitpush......
  • EasyCVR如何快速定位占用大量存储空间的文件?
    在EasyCVR运行过程中,通常会产生大量的日志,而用户一般不知道在哪里进行处理。今天小编就教大家一个方法,可以节省大量存储空间。1)首先写一个脚本,脚本的用途主要是查找超过40M的文件,当然这个数值可以自定义,只需要在脚本内更改即可;!/bin/bash使用find命令找到当前目录下所有超过50M的文......
  • 通杀?海康威视安全接入网关任意文件读取漏洞
    声明:本文提供的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。    背景海康威视安全接入网关使用jquery-1.7.2JavaScript......
  • C# 远程文件下载至本地
    将服务器(互联网)的照片或者文档文件,根据访问的URL地址,将文件保存至本地;下载文件的helper帮助类: 1///<summary>2///Http方式下载文件3///</summary>4///<paramname="url">http地址</param>5///<paramname="localfile">本地文件</param>6......
  • 一文掌握 Vue3 + Express 大文件分片上传、断点续传、秒传技巧!
    前言在日常开发中,文件上传是常见的操作之一。文件上传技术使得用户可以方便地将本地文件上传到Web服务器上,这在许多场景下都是必需的,比如网盘上传、头像上传等。但是当我们需要上传比较大的文件的时候,容易碰到以下问题:上传时间比较久;中间一旦出错就需要重新上传;一般服务端会对文件......
  • linux&windows通过脚本下载ftp文件
    windows@echooffREM登陆ftp下载文件setftpUser=test_usersetftpPass=123456setftpIP=192.168.1.205setftpFolder=/setLocalFolder=C:/Users/Administrator/DesktopsetftpFile=%temp%/TempFTP.txt>"%ftpFile%"(echo,%ftpUser%echo,%ftpPass%......
  • vue实现文件下载
    vue实现文件下载:https://blog.csdn.net/weixin_41696001/article/details/124210326?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170349398716800222872852%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=1703493987168002228728......
  • 安防视频云平台/可视化监控云平台EasyCVR如何快速定位占用大量存储空间的文件?
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的......
  • 测试buffer_size对文件IO的读取效率
    #include<stdio.h>#include<stdlib.h>#include<unistd.h>intmain(intargc,char**argv){if(argc<2){fprintf(stderr,"faildUsage...\n");exit(1);}intbuffersize=atoi(argv[1]);cha......
  • Linux so文件
    https://www.python100.com/html/I3T3M93XN47U.html一、什么是SO文件SO文件(SharedObject),也被称为共享库、动态链接库,是一种在Linux系统中使用的二进制文件。它包含了可重用的代码、数据和函数等,可以由多个程序同时使用,以节省空间。SO文件是一个编译好的目标文件,其中包含了可供......