基于HTML5的移动Web应用——文件操作

uniapp iosApp H5+本地文件操作(写入修改删除等) 以csv文件为例,写入读取保存修改删除文件内容,传输文件等 阅读详情

过去Web程序不能替代桌面程序的一个重要原因就在于浏览器对于文件操作API的缺失。照片处理中的裁剪、滤镜,二维码的读取与识别,文档的查看和编辑等,这些操作无一不依赖文件的操作,HTML5赋予了浏览器几乎和本地程序同等强大的文件操作能力。

File API是HTML5在DOM标准中添加的功能,它允许Web内容在用户授权的情况下选择本地文件并读取内容一通过 File,FileList 和FileReader等对象共同作用来实现。

选择文件

1、通过表单选择文件

由于Web环境的特殊性,为了考虑文件安全问题,浏览器不允许JavaScript直接访问文件系统,但可以通过file类型的input元素或者拖放的方式选择文件操作。
<input type="file" id="thisFile"/>

File表单可以让用户选取一个或者多个文件(multiple 属性),通过FileAPI,可在用户选择文件后访问到代表了所选文件列表的FileList对象,FileList 对象是一个类数组的对象,其中包含着一个或多个File对象。如果没有multiple属性或者用户只选了一个文件,那么只需要访问FileList对象的第一个元素:
var filelist=document.getElementById('thisFile') .files;
var selectedFile-filelist[0]; 

使用input元素时,用户在选择文件后会触发其change事件:
var inputElement=document.getElementById('thisFile')
inputElement. addEventListener ("change",handleFiles, false)
function handleFiles(){
     var fileList=this.files 
}

和其他类数组对象一样,FileList 也有length属性,可以轻松遍历其File对象:
for (var i=0, numFiles=files.length ; i< numFiles; i++) {
    var file=files[i]
    ……
}

File对象有3个很有用的属性,包括了关于该文件的许多有用信息。
(1) name: 文件名,不包含路径信息。
(2) size: 文件大小,以B为单位。
(3) type:文件的MIME type。
需要注意的是,这3个属性都是只读的。

2、通过拖曳来选择文件

使用拖曳的方式来选择文件的效果,需要通过访问dataTransfer的files属性来实现。
下面通过一个案例来演示具体效果,如示例所示。
【示例】 使用拖曳的方式选择文件
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<style>
    .dropzone{
        width: 200px;
        height: 100px;
        border: 2px  dashed #ddd;
        text-align: center;
        padding-top: 100px;
        color: #999;
    }
</style>
<body>
<div id="dropzone" class="dropzone">
    拖曳文件到此处
</div>
<div id="output" class="output">


</div>
<script>
    function getFileInfo(file) {
        var aMultiples = ["KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], sizeinfo;
        var info = '文件名:' + file.name ;
        // 计算文件大小的近似值
        for (var nMultiple = 0, nApprox = file.size / 1024; nApprox > 1; nApprox /= 1024, nMultiple++) {
            sizeinfo = nApprox.toFixed(3) + " " + aMultiples[nMultiple] + " (" + file.size + " bytes)";
        }
        info += ";大小:" + sizeinfo
        info += ";类型:" + file.type


        return info + '<br>'
    }


    var dropzone = document.getElementById('dropzone');
    dropzone.addEventListener('drop', function (e) {
        var html = '您一共选择了 ' + e.dataTransfer.files.length + '个文件,文件信息如下:<br>';
        [].forEach.call(e.dataTransfer.files, function (file) {
            html += getFileInfo(file);
        });
        document.getElementById('output').innerHTML = html
        e.preventDefault();
        e.stopPropagation();
    }, false);
    dropzone.addEventListener('dragover', function (e) {
        if (e.preventDefault) {
            // 必须要阻止dragover的默认行为(即不可drop),这样才能进行drop操作。
            // 否则不会触发drop事件
            e.preventDefault();
        }
        return false
    }, false)
</script>
</body>
</html>

H5 拖拽上传本地文件(原生实现) H5 拖拽上传本地文件(原生实现),同时支持点击上传 阅读详情

相关推荐

基于 HTML5 的校园网站移动平台 web 页面设计

摘要 :随着无线网络技术和智能移动设备的发展,人们对 web 应用的需求也在不断增加。HTML5 的出现,给移动互联网带来了 重要的影响。作为重要的 web 开发标准,HTML5 使 web 应用开发更加容易。本文使用 HTML5 简单论述了一个校园网站 web 也 的开发过程。 关键词 :HTML5 ;移动互联网 ;web 应用 ;校园网站 Design of Campus Webs

fxmgx的博客 7818

HTML5+plus 移动文件夹或文件(必会!!)

【代码】HTML5+plus 移动文件夹或文件(必会!!)

qq_61033782的博客 1242

基于HTML5的Web SCADA工控移动应用

在电力、油田燃气、供水管网等工业自动化领域Web SCADA的概念已经提出了多年,早先年的Web SCADA前端技术大部分还是基于Flex、Silverlight甚至Applet这样的重客户端方案,在HTML5流行前VML和SVG算是真正纯种Web方案也是有不少应用,近些年随着HTML5的流行,加上移动终端对HTML5支持的普及,越来越多新项目开始采用真正纯HTML5的方案,更具体的说大数据量应用

yixiaof的专栏 1336

HTML5文件操作+上传+文件拖拽(案例)

readAsDataURL(file)获取一个对象路径,读取对象,readAsText(文件,"utf-8")以某种字符编码读取。onloadend读取文件完成时触发(无论成功与否)onloadstart读取文件开始时触发。onprogress读取文件过程中触发。onload读取文件成功完成时触发。fileList读取多个文件对象。fileReader读取文件信息。onabort读取文件中断时触发。reslut获取读取对象的信息。file读取单个文件对象。abort()中断读取。...

TongJ_的博客 2124

《HTML5移动Web开发指南》读后笔记

《HTML5移动Web开发指南》读后笔记

Gyoung杨广 978

JavaScript HTML5移动端简易文件上传实现 - JavaScript技巧

在移动端开发中,实现文件上传功能是一个常见的需求。通过结合JavaScript的技巧,我们可以轻松地在移动端实现文件上传功能。通过使用JavaScript和HTML5的File API,我们可以在移动端实现简易的文件上传功能。以上提供的代码示例展示了如何处理文件选择、上传进度追踪和上传结果的处理。接下来,我们将使用JavaScript来处理文件上传的逻辑。首先,我们需要创建一个简单的HTML结构来容纳文件上传功能。在上述代码中,我们首先获取文件输入框的引用,并从中获取用户选择的文件。)来显示文件上传进度。

ByteZenith的博客 469

移动Web开发实战内容要点!!!

网页主要由三部分组成:结构(Structure)、表现(Presention)、行为(Behaveior)。 HTML是hyper text markup language(超文本标记语言)的缩写。

Z_CH8648的博客 1578

HTML5移动Web开发完全指南

本文还有配套的精品资源,点击获取 简介:《HTML5移动Web开发指南》一书由唐俊开编写,旨在指导开发者深入掌握HTML5在移动设备上的应用。本书详尽阐述了HTML5的核心特性和API,如离线存储、语义化标签、表单控件增强、媒体元素、Canvas和SVG图形支持、Geolocation API、Web Workers和Web Storage,以及WebSocket和WebR...

weixin_42594419的博客 1428

读薄《HTML5 移动Web 开发指南》

第1章 移动互联网时代的Web技术 目录 第1章 移动互联网时代的Web技术 1.1 移动互联网的发展 1.2 智能手机发展迅速 1.3 智能手机的Web浏览器 1.4 移动Web应用的发展 1.5 基于HTML5的移动Web应用 1.1 移动互联网的发展 1.2 智能手机发展迅速 1.3 智能手机的Web浏览器 基于Webkit的浏览器 Webkit 实际上是一种浏览器引擎,同时也是一个开源的项目。在桌面浏览器中,Chrome谷歌浏览器、Apple的Safari浏览器都内置了.

weixin_41184962的博客 2141

攻击时间控制的动态逆三维制导律(源代码)

%参考文献:《攻击时间控制的动态逆三维制导律》,哈尔滨工程大学学报,2010 %编程难点:视线坐标系与参考坐标系间的转换关系 一、采用本文方法结果 二、偏航通道采用增广比例导引律

算法小站 2393

用C#完成最小二乘法拟合平面方程,再计算点到面的距离

【代码】用C#完成最小二乘法拟合平面方程,再计算点到面的距离。

MechMaster 647

HTML5移动web开发指南笔记

手机内置浏览器:  Android:Andriod BrowserIOS:Mobile SafariBlackBerry:WebkitSymbian S60: Web Browser for S60 其浏览器的核心都是基于Webkit Webkit简介:     一种浏览器引擎,同时也是一个开源的项目 Web浏览器带来的意义:     可以通过浏览器直接访问任何

herion_liu的博客 3406

系统回溯信息:遇到严重错误。已将回溯写入...PTC... raceback.log请将其发送给|技术支持|。

一、问题分析 这种问题一旦遇上了,如果忘了保存,直接心态爆炸。 该问题一般是显卡驱动的问题。ProE/Creo对显卡的基本要求是:支持Open_GL的3D显卡,分辨率为1024×768像素以上,推荐使用64位独立显卡,显存512MB以上。如若显卡性能太低,打开软件后易自动退出。 二、解决方法 <1>有一个非常简单的方法是:在config.pro文件中,改变图形配置graphics为” win32_gdi”而不是默认的“...

幕光倾城的博客 2万+

HTML5 - 搭建移动Web应用

HTML5 - 搭建移动Web应用 by gzterrytan is licensed under a Creative Commons 署名 2.5 中国大陆 License. 关于HTML5   HTML5具有语义学、本地存储、设备访问、连接性、多媒体、平面和三维效果、性能和集成和CSS3八大技术特征。让Web应用进入无插件时代,在功能和性能上逼近桌面应用。促使应用Web化...

dbsynfzd93506的博客 220

【AAAI 2025】轻量级特征增强新范式!FCM 模块助力小目标检测,即插即用提升模型泛化能力

本文介绍了AAAI 2025提出的轻量级特征增强新范式FCM模块,它通过显式分离并双向交互语义与空间特征,有效解决了小目标检测中特征信息失配的核心难题。该模块设计精巧,计算开销极低,能够即插即用式地嵌入YOLO等主流检测网络,显著提升模型对小目标的泛化检测能力,尤其适用于遥感、自动驾驶等对计算资源敏感的实际场景。

weixin_29056145的博客 287

D457深度相机调试记录(max96712+max9295A)

使用max96712解串器解4路D457相机。采集深度相机Depth和RGB流。

navy2015_163的博客 1263

从HTML5移动应用现状谈发展趋势

作者注:此文章原为2013年5月的《程序员》杂志所做,现刊登于此,以飨读者。从HTML5移动应用现状谈发展趋势        时光如梭,自2008年HTML5诞生以来已经过去了5年的时间,作为新一代的Web标准,它自问世以来就受到方方面面的强烈关注,也引起了许多争议,支持者因其开放强大的特点而鼓吹它的美好前景,质疑者因其迟迟不能很好落地而怀疑它的实际作用。现在我们从现状入手,以提问的方式针对HTM

蒋宇捷的专栏 1万+

使用 Simulink 进行电力电子系统的小信号模型仿真

电力电子系统(Power Electronics System)包括各种功率转换器(如 DC-DC 转换器、逆变器等)。这些设备中的关键组件(如 MOSFET、IGBT、电容器、电感器等)不仅影响系统的性能,还直接关系到系统的稳定性、效率和可靠性。因此,在设计阶段进行详细的建模和仿真至关重要。小信号模型仿真的目的是通过线性化非线性系统来评估其动态特性,包括增益、相位裕度、带宽等指标。通过本教程,我们介绍了如何使用 Simulink 进行电力电子系统的小信号模型仿真。背景介绍。

xiaoheshang_123的博客 480

html5移动wb开发题库,《HTML5移动Web开》课后习题及答案复习课程.doc

1.请列举移动开发的几种方式。答案:当前,针对移动端的开发方式可以分为三种,具体如下。移动Web:就是在移动Web浏览器中运行的Web应用。NativeApp:用Android和Object-C等原生语言开发的移动应用。HybridApp:将移动Web页面封装在原生外壳中,以APP的形式与用户交互。2.请列举基于HTML5的移动Web开发支持那些新功能。答案:多媒体Canvas本地存储离线应用地理...

weixin_42132354的博客 1250

MATLAB基础应用精讲-【数模应用】数字预失真(DPD)(附MATLAB代码实现)

近年来,随着无线通信技术的发展,高功率放大器 (PA) 在提高信号传输功率的同时,也带来了非线性失真问题。PA的非线性失真会造成信号频谱扩展、功率下降、邻道干扰等问题,严重影响系统性能。为了克服PA的非线性失真,数字预失真 (DPD) 技术应运而生。DPD技术通过在发射机中引入一个非线性模块,对信号进行预失真处理,从而补偿PA的非线性失真。

qq_36130719的博客 896

73、结合无人机进行rk3588oak-lite跟踪目标物体进行识别、跟踪

搭建仿真转换模型环境,主要python版本和我下载的rknn2的版本。截取shape节点,输出模型。so库也要对应转模型的whl。其中安装的whl版本。

sxj731533730 1623

Web移动应用:HTML5,CSS和JavaScript

移动设备的广泛使用,使许多传统开发者很无奈。一个企业真的既需要一个Web站点又需要一个移动应用程序吗?本文讨论了HTML 5的可移植性以及为什么在所有的移动平台上都可以良好运行的HTML5,CSS和JavaScript应用程序才是未来的趋势。 许多开发者已经得出了结论:他们需要把注意力集中在特定的移动平台上——例如iPhone,Windows7或Android。而其他人开始意识到有许多...

aa88342249的博客 261

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

搭建html5的,HTML5 - 搭建移动Web应用

关于HTML5HTML5具有语义学、本地存储、设备访问、连接性、多媒体、平面和三维效果、性能和集成和CSS3八大技术特征。让Web应用进入无插件时代,在功能和性能上逼近桌面应用。促使应用Web化,实现跨平台。HTML5规范草案将于2012年发布候选推荐版,2022年发布计划推荐版。规范的实现似乎还在遥远的未来,其实不然!当前很多浏览器已经部分支持HTML5,caniuse.com提供了详尽的浏览器...

weixin_30674431的博客 204

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

html5移动开发在线阅读,HTML5移动Web开发

内容简介近些年,移动互联网迅速进入人们的生活、工作中。在移动互联网中起支撑作用的网页、APP等开发技术也已经成熟。除了原生的Android与iOS外,HTML5也是移动Web技术中不可忽视的一种开发模式。本教材详细讲解了HTML5在移动Web开发中的应用,包括多媒体、canvas、本地存储、离线应用、地理定位、拖曳、文件操作、移动端事件、移动端常用布局等,除这些相对独立的技术点讲解,本教材还讲解了...

weixin_29248313的博客 456

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【精品教程】HTML5移动Web开发指南文档分享

本书主要围绕HTML5 技术,讲述如何利用HTML5 相关技术开发移动Web 网站和Web App 应 用程序。本书共分为四大部分,第一部分主要讲述Web 技术的发展及HTML5 标准在移动Web 技术 中的应用;第二部分主要介绍HTML5 的新功能和新特性如何在移动设备浏览器中使用及相关展望; 第三部分主要介绍目前比较流行的两套JavaScript 移动开发框架jQuery Mobile、

u013490060的专栏 1649
上一篇: java EE开发之Servlet第八课:MVC模式 (基本理解)
下一篇: Centos7上进行ftp配置
Meryoufdd
博客等级 码龄5年 13粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值