钥匙要点
- > HTML5 API可以帮助打开,读取和上传用户已将其拖动到浏览器窗口中的文件。此功能由Chrome,Firefox和Opera的最新版本支持,但Opera只能通过标准文件输入来使用它。 > HTML5 FILELIST对象是类似数组的文件对象集合,FileReader对象允许您在JavaScript中打开文本或二进制文件。这使得在进行进一步处理或上传之前,可以检查文件类型和大小。
- > > HTML5允许通过将“进度”事件连接到XMLHTTPREQUEST2对象来创建上传进度条。此功能加上拖放文件的能力,可以显着增强Web应用程序的可用性。
- HTML5 API支持
尽管Opera支持这些对象,但它们只能通过标准文件输入来使用 - 而不是拖放。因此,需要进一步检查;我建议使用xmlhttprequest2上传方法,例如
if (window.File && window.FileList && window.FileReader) { ... }>文件拖动
var xhr = new XMLHttpRequest(); if (xhr.upload) { ... attach drag and drop events ... }所有浏览器(iPhone和iPad上的浏览器除外)支持显示熟悉的“浏览”按钮的文件输入类型。 HTML5中引入了“多个”属性,我们可以将更改事件处理程序附加到该字段:
Chrome和Firefox还允许用户将一个或多个文件拖动到所选元素上。您可以将事件处理程序连接在内,包括“ Dragover”和“ DragLeave”(用于更改样式)和“ Drop”,以检测掉落的文件,例如
document.getElementById("fileselect").addEventListener("change", FileSelectHandler, false);检索filelist对象
document.getElementById("filedrag").addEventListener("drop", FileSelectHandler, false);HTML5 Filelist对象是类似数组的文件对象集合。文件输入字段通过文件属性(event.target.files)返回filelist。丢弃的文件通过事件的dataTransfer.files属性(event.datatransfer.files)返回filelist对象。 因此,我们可以使用单个事件处理程序检索filelist对象:
取消默认事件很重要。这样可以防止浏览器掉入窗口时试图显示或处理文件的尝试。
>分析文件对象// cancel event default e.preventDefault(); // fetch FileList object var files = e.target.files || e.dataTransfer.files; // process all File objects for (var i = 0, file; file = files[i]; i++) { ... }filelist集合包含许多文件对象。提供了三个有用的文件属性:
.name:文件名(不包括路径信息)
- >
- .. type:哑剧类型,例如图像/jpeg,文本/普通等。
- .size:字节中的文件大小。
if (window.File && window.FileList && window.FileReader) { ... }有关更多信息,请参阅如何使用HTML5和JavaScript打开删除文件。
>使用fileReader
打开文件 HTML5 FileReader对象允许您在JavaScript中打开文本或二进制文件。正如您所期望的那样,readastext()方法用于检索文本内容,例如var xhr = new XMLHttpRequest(); if (xhr.upload) { ... attach drag and drop events ... }同样,ReadAsdataurl()方法将二进制图像数据作为编码数据URL检索,可以将其传递到Image SRC属性或画布元素:
document.getElementById("fileselect").addEventListener("change", FileSelectHandler, false);有关更多信息,请参阅如何使用HTML5和JavaScript打开删除文件。
>使用ajax
上传文件 当用户保留在页面上时,可以将适当的文件上传到您的服务器。这只是将文件对象传递到xmlhttprequest2的send()方法的问题:document.getElementById("filedrag").addEventListener("drop", FileSelectHandler, false);注意,我们还将文件名发送为HTTP标头。这是可选的,但是它允许我们使用诸如PHP之类的语言在服务器上使用其原始名称重新创建文件:
// cancel event default e.preventDefault(); // fetch FileList object var files = e.target.files || e.dataTransfer.files; // process all File objects for (var i = 0, file; file = files[i]; i++) { ... }有关更多信息,请参阅如何使用HTML5和AJAX异步上传文件。
创建上传进度栏
我们还可以将“进度”事件附加到xmlhttprequest2对象:// process image files under 300,000 bytes if (file.type.indexOf("image") == 0 && file.size 该处理程序接收一个带有.LOAD(传输的字节的数量)和.Total(文件大小)属性的事件对象。因此,可以计算进度并将其传递给HTML5进度标签或任何其他元素,例如 <pre class="brush:php;toolbar:false"> if (file.type.indexOf("text") == 0) { var reader = new FileReader(); reader.onload = function(e) { // get file content var text = e.target.result; ... } reader.readAsText(file); }有关更多信息,请参阅如何在HTML5和JavaScript中创建图形文件上传进度条。 希望您喜欢这个系列。文件拖放是一个重要的功能,可以转换Web应用程序的可用性。 HTML5终于变得容易了。
>关于HTML5文件拖动,删除,读取,分析和上传进度条
的常见问题(常见问题解答)>如何在我的Web应用程序中实现HTML5拖放功能?
>实现HTML5拖放功能涉及几个步骤。首先,您需要创建一个Drop区域,该区域是用户可以删除文件的区域。这可以是任何HTML元素,但必须将“可拖动”属性设置为true。接下来,您需要为“拖动”和“丢弃”事件添加事件听众。当拖动物品在下降区域上方时,“拖曳”事件将发射,并且在删除该项目时发射“下降”事件。如果“ drop”事件的处理程序,您可以通过事件对象的“ datatrans.files”属性访问删除的文件。
>“ dataTransfer.files”和“ dataTranser.Items”?
>“ dataTransfer.files”和“ datatRansfer.items”之间有什么区别。 “ dataTransfer.files”属性是代表要拖动的文件的filelist对象。当您要处理服务器端上的文件时,这很有用。另一方面,“ dataTransfer.items”是代表所有阻力数据的DatatRansferitemlist对象。当您要处理不同类型的拖放数据时,这很有用,而不仅仅是文件。
为什么我的“ dataTransfer.files”在射击“ drop”事件时空为空? 是空的。 “ DataTransfer.files”属性仅在“ Drop”事件中填充。确保您是在正确的事件处理程序中访问它的。
>如何读取已删除文件的内容?
您可以使用FileReader API读取丢弃文件的内容。首先,您需要创建一个新的FileReader对象。然后,您可以使用“ readastext”或“ readasdataurl”方法读取文件内容。 “ readastext”方法将文件读取为文本字符串,而“ readasdataurl”方法将文件读取为数据URL。
在上传文件时如何显示进度栏?
>
您可以通过聆听XMLHTTPEREQUEST PEREQUEST PREQUEST PREQUEST的“进度”事件来显示进度栏。随着上载的进行,“进度”事件会定期发射。如果情况处理程序,您可以计算进度百分比并相应地更新进度栏。确保将XMLHTTPREQUEST对象的“上载”属性设置为真实,以启用“进度”事件。
>>我如何处理多个文件上传?
>您可以通过在“ dataTransfer.files.files”属性上迭代来处理多个文件上传,哪些是文件。 filelist对象中的每个项目都是代表掉落文件的文件对象。您可以单独处理每个文件,例如,通过读取其内容或将其上传到服务器。>
>如何限制可以删除的文件类型?>您可以限制可以通过检查“ datatransfer.files.files.files.files.files”属性的“类型”属性的文件类型的文件类型。 “类型”属性是代表文件的MIME类型的字符串。如果不允许使用文件类型,则可以通过调用“ drop”事件处理程序中事件对象的“预防默认”方法来防止删除操作。>我如何处理嵌套元素的拖放事件?
>处理嵌套元素的拖放事件可能很棘手,因为事件在DOM树上冒泡。为了防止父母元素收到针对子元素的拖放事件,您可以在子元素的事件处理程序中调用事件对象的“停止propagation”方法。>
>我如何自定义文件在上面拖动文件时的外观? “ Dragleave”和“ Drop”活动处理程序。您可以在CSS中定义类的外观。>如何测试自动化测试中的拖放功能?测试拖放功能可能具有挑战性,因为它涉及复杂的用户交互。但是,某些测试库(例如硒)提供了模拟阻力动作的方法。您还可以创建一个模拟的“ Drop”事件并将其派遣到Drop Zone Element。
是空的。 “ DataTransfer.files”属性仅在“ Drop”事件中填充。确保您是在正确的事件处理程序中访问它的。
>如何读取已删除文件的内容?
您可以使用FileReader API读取丢弃文件的内容。首先,您需要创建一个新的FileReader对象。然后,您可以使用“ readastext”或“ readasdataurl”方法读取文件内容。 “ readastext”方法将文件读取为文本字符串,而“ readasdataurl”方法将文件读取为数据URL。
在上传文件时如何显示进度栏?
>
您可以通过聆听XMLHTTPEREQUEST PEREQUEST PREQUEST PREQUEST的“进度”事件来显示进度栏。随着上载的进行,“进度”事件会定期发射。如果情况处理程序,您可以计算进度百分比并相应地更新进度栏。确保将XMLHTTPREQUEST对象的“上载”属性设置为真实,以启用“进度”事件。
>>我如何处理多个文件上传?
>
>如何限制可以删除的文件类型?>您可以限制可以通过检查“ datatransfer.files.files.files.files.files”属性的“类型”属性的文件类型的文件类型。 “类型”属性是代表文件的MIME类型的字符串。如果不允许使用文件类型,则可以通过调用“ drop”事件处理程序中事件对象的“预防默认”方法来防止删除操作。>我如何处理嵌套元素的拖放事件?
>处理嵌套元素的拖放事件可能很棘手,因为事件在DOM树上冒泡。为了防止父母元素收到针对子元素的拖放事件,您可以在子元素的事件处理程序中调用事件对象的“停止propagation”方法。>
>我如何自定义文件在上面拖动文件时的外观? “ Dragleave”和“ Drop”活动处理程序。您可以在CSS中定义类的外观。>如何测试自动化测试中的拖放功能?测试拖放功能可能具有挑战性,因为它涉及复杂的用户交互。但是,某些测试库(例如硒)提供了模拟阻力动作的方法。您还可以创建一个模拟的“ Drop”事件并将其派遣到Drop Zone Element。
以上是HTML5文件拖动,删除,分析,读取和上传的详细内容。更多信息请关注PHP中文网其他相关文章!

JavaScript是现代网站的核心,因为它增强了网页的交互性和动态性。1)它允许在不刷新页面的情况下改变内容,2)通过DOMAPI操作网页,3)支持复杂的交互效果如动画和拖放,4)优化性能和最佳实践提高用户体验。

C 和JavaScript通过WebAssembly实现互操作性。1)C 代码编译成WebAssembly模块,引入到JavaScript环境中,增强计算能力。2)在游戏开发中,C 处理物理引擎和图形渲染,JavaScript负责游戏逻辑和用户界面。

JavaScript在网站、移动应用、桌面应用和服务器端编程中均有广泛应用。1)在网站开发中,JavaScript与HTML、CSS一起操作DOM,实现动态效果,并支持如jQuery、React等框架。2)通过ReactNative和Ionic,JavaScript用于开发跨平台移动应用。3)Electron框架使JavaScript能构建桌面应用。4)Node.js让JavaScript在服务器端运行,支持高并发请求。

Python更适合数据科学和自动化,JavaScript更适合前端和全栈开发。1.Python在数据科学和机器学习中表现出色,使用NumPy、Pandas等库进行数据处理和建模。2.Python在自动化和脚本编写方面简洁高效。3.JavaScript在前端开发中不可或缺,用于构建动态网页和单页面应用。4.JavaScript通过Node.js在后端开发中发挥作用,支持全栈开发。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。 1)C 用于解析JavaScript源码并生成抽象语法树。 2)C 负责生成和执行字节码。 3)C 实现JIT编译器,在运行时优化和编译热点代码,显着提高JavaScript的执行效率。

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)