利用input上传图片以及文件视频音频等

2023-11-20

这里说的input指的就是我们常用的<input/>标签,那么我们如何利用这个标签来处理文件上传呢?
其实当我们的<input> type 类型为 file 的的时候,就可以进行了 。 即 <input type="file"/>
加上这个标签之后就可以看到一个选择文件的按钮了。


常用的相关属性

accept:决定上传文件可以有哪些类型,如果写来相应接收的文件,也就只能看到这些类型的文件来(文件类型不一定就正好是后缀名,这是一个小坑)
图片类型文件

<input type=“file” accept=“image/png,image/gif,image/jpg”> //只支持png gif ipg这3种类型的图片
<input type=“file” accept=“image/*”> //接受任何格式的图片文

文档文件

<input type=“file” accept=".doc, .docx, .xml"> //只支持doc docx xml这3种类型的文档
<input type=“file”
accept=".doc, .docx, .xml, application/msword,
application/vnd.openxmlformats-officedocument.wordprocessingml.document"> //支持所有dMS Doc 文件类型

multiple:决定是否支持一次上传多个文件

<input type=“file” id=“file” name=“file” multiple> //加上multiple属性之后,支持一次选择多个文件

required: 决定


上传文件所触发的事件

change


input 的 value

选择文件的路径

  1. 如果选择来多个文件,这个值表示第一个被选择的文件的路径,如果需要获取其他的路径可以打印一下input这个元素的FileList属性
  2. 如果没有选择文件,value为空

获取所选择文件的相关信息(el.files)

打印这个input.files,我们可以得到一个对象包含信息如下:
name: 文件名
lastModifiedDate: 文件最后修改的时间
size:文件字节大小

8bit(位)=1Byte(字节)
1024Byte(字节)=1KB
1024KB=1MB
1024MB=1GB
1024GB=1TB

type: 所选文件的类型


上传文件案例

// -----------------------------------  HTML -------------------------------------
<div>
     <label for="image_uploads">上传图片 (支持:png, jpeg, jpg格式)</label><br />
     <input type="file" id="image_uploads" name="image_uploads" accept=".jpg, .jpeg, .png" multiple>
</div>
<div class="preview">
</div>

// --------------------------------- JS ------------------------------------------------------
<script>
        // 获取 input 元素
        var input = document.querySelector('input');
        // 获取 preview 元素
        var preview = document.querySelector('.preview');


        //监听 input 的 change 事件, 并且在事件发生的时候调用 updateImageDisplay 方法. 
        input.addEventListener('change', upload);

        function upload() {

            var curFiles = input.files;
            //根据files中的长度来判断是否有选择文件,如果没有通知用户;如果有,则预览选择的文件
            if (curFiles.length === 0) {
                var para = document.createElement('p');
                para.textContent = 'No files currently selected for upload';
                preview.appendChild(para);
            } else {
                var list = document.createElement('ol');
                preview.appendChild(list);
                for (var i = 0; i < curFiles.length; i++) {
                    var listItem = document.createElement('li');
                    var image = document.createElement('img');
                    image.src = window.URL.createObjectURL(curFiles[i]);
                    listItem.appendChild(image);
                    list.appendChild(listItem);
                }
            }
        }
    </script>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用input上传图片以及文件视频音频等 的相关文章

  • 简单的MyBatis demo之数据库增删改查

    一 MyBatis简介 xff08 摘自官方文档 xff09 xff1a MyBatis 是支持定制化 SQL 存储过程以及高级映射的优秀的持久层框架 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 MyBat
  • Qt5官方Demo解析集1——Fortune Server/Client

    本系列所有文章可以在这里查看http blog csdn net cloud castle article category 2123873 最近发觉学习Qt官方demo的好处越来越多 xff0c 除了了解特定模块与类的用法 xff0c 更
  • 【MediaSoup】mediasoup-sfu-cpp : demo 和MediaSoup实例

    MediaSoup mediasoup sfu cpp vs2022 构建 完成了构建 下面分析其线程模型 main 进程 创建一个独立server线程支持ws 作为一个oatpp的组件存在 D span class token punct
  • SpringBoot整合shiro——简单的demo

    结构目录 前端页面代码部分 index html span class token doctype span class token punctuation lt span span class token doctype tag DOCT
  • 一个简单的springboot整合shiro的demo

    index html span class token operator lt span span class token operator span DOCTYPE html span class token operator gt sp
  • C# 读写ini配置文件demo

    INI就是扩展名为 34 INI 34 的文件 其实他本身是个文本文件 可以用记事本打工 主要存放的是用户所做的选择或系统的各种参数 INI文件其实并不是普通的文本文件 它有自己的结构 由若干段落 SECTION 组成 在每个带括号的标题下
  • Netty远程桌面demo

    https github com leisuredong RemoteDesktop 从远端服务器获取屏幕截图展示在本地客户端窗口 xff0c 可以在服务端通过鼠标键盘控制远端机器
  • 合宙ESP32S3 CameraWebServe 测试demo

    合宙ESP32S3 CameraWebServe 合宙ESP32S3 CameraWebServe测试 xff0c 我们需要一个OV2640的摄像头模组用来采集图像传输给ESP32的 xff0c 这里使用的OV2640是之前安信可十周年的白
  • springboot整合shiro的小demo(一)

    刚学shiro整合springboot xff0c 在此做一个笔记 xff0c 以便后期忘了查阅 本文分以下几个方面进行整合以及验证 xff1a 1 springboot项目搭建整合thymeleaf实现页面访问 2 springboot整
  • Mysql批量插入对比(附github仓库demo)

    前言 本文记录个人使用MySQL插入大数据总结较实用的方案 xff0c 通过对常用插入大数据的4种方式进行测试 xff0c for循环单条拼接SQL批量插入saveBatch 循环 43 开启批处理模式 最近趁空闲之余 xff0c 在对My
  • 川崎duAro机器人 ROS_moveit demo

    说明 demo cpp Author hiics include lt ros ros h gt include lt iostream gt MoveIt include lt moveit move group interface mo
  • 腾讯Cos对象储存api用法教程中英图文讲解

    Chinar blog www chinar xin 腾讯云 Cos api sdk详解 本文提供全流程 中文翻译 Chinar 的初衷是将一种简单的生活方式带给世人 使有限时间 具备无限可能 Chinar 心分享 心创新 助力快速理解 C
  • 基于 Spring Cloud 完整的微服务架构实战

    本项目是一个基于 Spring Boot Spring Cloud Spring Oauth2 和 Spring Cloud Netflix 等框架构建的微服务项目 技术栈 Spring boot 微服务的入门级微框架 用来简化 Sprin
  • 这是mybatis最简单的入门

    这里有一个demo 这是mybatis最简单的入门 使用的IDE为idea 是maven的哦 这篇只是很简单的一个查询demo 目标是ssm 先来pom文件 这个不知道在网上哪里找的 lt gt
  • 【看后必会】一步步教你用React写一个markdown实时编辑器!

    1 实现效果 最近在用React写一个博客管理系统 有一个功能是添加新文章 在新建文章的页面 我希望做到像CSDN这样 左边是编辑区 markdown格式 右边是预览区 实时更新 编辑文本的同时 在预览区就能看到效果 就自己动手实现了一个这
  • opencv将16位灰度图片转化为8位

    大家在加载灰度图时 一定要看准图片存储格式位数 opencv默认为8位读取 如果该图为16位 则读取为全0 导致程序出错 以下代码只需修改路径 可以批量处理图片 include
  • 海康摄像头视频调用出错,Jni Error(app bug): accessed stale local reference解决办法

    项目中要在Android手机中调用海康摄像头拍摄的画面 在公司网管配置好了网络地址 不要与其他局域网内地址冲突 和端口 并激活摄像头设备后 通过SADPTool 海康提供的摄像头搜索工具 可以自动检索到当前局域网内已激活的设备 通过设备列表
  • Tornado websocket 演示的 Nginx 配置?

    有人可以向我提供 Tornado websocket 聊天演示的 Nginx 配置吗 该演示位于 tornado demos websocket 像这样的配置将起作用 events worker connections 1024 http
  • 什么是好的头像电子邮件示例?

    在 Ember js 文档中看到类似的演示后 我刚刚做了一个演示 该演示根据您的电子邮件获取您的头像 我目前正在使用 电子邮件受保护 cdn cgi l email protection作为默认值 但这似乎是错误的 因为它是一个 React
  • 管理软件的演示版本[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个用VB6编写的软件产品 它是一个付费软件产品 有1个月的演示版本 演示版本没有单独的安装文件 输入产品密钥后 软件会将演示版本

随机推荐