在我的上一篇文章中,如何使用HTML5文件拖动和删除
,我们发现了如何使用HTML5文件API,实现拖放事件并检索文件信息。今天,我们将尝试使用JavaScript在客户端上加载文件。
为什么在JavaScript中打开本地文件?
从HTML表单上传文件很笨拙。人们经常在将多毛线照片从相机转移到网络服务器时使用它。假设他们找到了文件,上传可能需要几分钟才能发现它是错误的照片,不支持的格式或比允许的更大的文件大小。到目前为止,开发人员必须依靠Flash或其他插件来提供更好的用户体验。
JavaScript中的预处理提供了许多好处:
本地文件处理很快。-
可以分析文件以确保它们是正确的格式并且低于特定尺寸的文件。>
>图像等文件可以在上传之前进行预览。- >
>可以在画布元素上裁剪或调整图像,然后上传结果文件。-
- fileReader对象
fileReader构成了W3C文件API的一部分,并提供了四种方法,以异步从文件对象中引用的文件加载数据:
> .readastext(文件f,[编码]):将文件f读取到字符串中。假定UTF-8编码,但是可选的编码参数可以指定不同的格式。
>
.readasdataurl(文件f):将文件f读取到编码的数据url -
.readasbinarystring(文件f):读取文件f作为二进制字符串- >
.readAsarrayBuffer(文件f):将文件f读为arraybuffer对象。-
在以下代码中,我们将使用前两种方法来加载和显示文本和图像文件。
>在JavaScript
中不同步打开文件
这是我们的原始parsefile()函数,当将文件对象选择或掉入#filedrag元素时,它传递给文件对象:
// output file information
function ParseFile(file) {
Output(
"<p>File information: <strong>" + file.name +
"</strong> type: <strong>" + file.type +
"</strong> size: <strong>" + file.size +
"</strong> bytes</p>"
);
}
登录后复制
遵循状态更新后,我们将检查是否有文本文件(文本/纯文本/html,text/css等),使用filereader.readastext()方法加载它并显示结果(逃脱
targue):
// display text
if (file.type.indexOf("text") == 0) {
var reader = new FileReader();
reader.onload = function(e) {
Output(
"<p><strong>" + file.name + ":</strong></p><pre class="brush:php;toolbar:false">" +
e.target.result.replace(/</g, "<").replace(/>/g, ">") +
"
"
);
}
reader.readAsText(file);
}
登录后复制
同样,我们可以检查是否具有图像文件(Image/jpeg,image/gif,image/png等),使用filereader.readasdataurl()方法将其加载到数据URL中,然后将结果传递给IMG标签的SRC属性:
// display an image
if (file.type.indexOf("image") == 0) {
var reader = new FileReader();
reader.onload = function(e) {
Output(
"<p><strong>" + file.name + ":</strong><br />" +
'<img src="' + e.target.result + '" /></p>'
);
}
reader.readAsDataURL(file);
}
登录后复制
请在Firefox,Chrome或Opera中查看演示页面(无拖放支持)。您也可以下载文件
检查代码。
尽管这很有用,但最终,我们需要将文件上传到Web服务器。请继续关注如何使用HTML5和AJAX…异步上传文件…
经常询问有关HTML5和JavaScript打开的问题(常见问题解答)
使用HTML5和JavaScript打开删除文件的目的是什么?此功能使用户可以将文件从其本地系统拖放到网页上。掉落后,可以使用JavaScript读取和处理这些文件。这对于诸如上传文件,读取文件内容或在Web应用程序中的处理图像或文档之类的任务特别有用。
> 如何通过一组事件和属性来促进html5?
中的拖放功能在html5?当用户在系统上选择文件并将其拖到网页上时,触发了“ Dragover”事件。如果文件删除,则触发“删除”事件。这些事件的一部分的DataTransfer属性保存文件数据,可用于访问和处理文件。
>>如何使用JavaScript?
javascript读取删除文件的内容?将文件删除到网页上后,可以通过DataTransfer属性访问它。可以创建一个新的FileReader对象,并且可以使用RealStext或ReadAsdataurl方法来读取文件内容。可以在FileReader对象的“加载”事件中访问结果。我可以一次打开多个删除文件吗? DataTransfer属性提供了“文件”属性,该属性是filelist对象。此对象表示所有删除的文件的列表。您可以循环浏览此列表以分别访问和处理每个文件。我可以使用HTML5和JavaScript?
>您可以使用HTML5和JavaScript打开任何类型的文件。但是,如何处理该文件取决于其类型。例如,可以将文本文件读取为文本,而图像文件可以读取为数据URL并使用IMG元素显示。
> 使用html5和javaScript打开掉落的文件是安全的吗?
>使用HTML5和JavaScript打开丢弃的文件,并且JavaScript通常是安全的,因为该文件通常是安全的,因为文件仅读取和处理客户sept client seled seplect sarecles seled select select seplect。但是,如果将文件数据发送到服务器,则应对其进行正确验证和消毒以防止安全问题。
我可以使用HTML5和JavaScript在所有浏览器上打开所有浏览器上的删除文件吗?
最现代的浏览器支持HTML5 Drag and Drog drog drag and drog drog drog drog drog drog and drog drog drog drog and javaScript fileeleeadereadereadereadereaderapi。但是,这些功能的实现方式可能存在差异。因此,重要的是要在不同的浏览器上测试您的代码以确保兼容性。
>>如何在网页上显示掉落文件的内容?
>可以使用JavaScript在网页上显示删除文件的内容。例如,如果文件是图像,则可以将其读取为数据URL并将其设置为IMG元素的SRC属性。如果文件是文本文件,则可以将其内容插入文本元素中。
我可以限制可以删除的文件类型吗?
> ,而您无法直接限制可以删除的文件类型,您可以使用文件对象的“类型”属性检查掉落的文件类型。如果文件类型与允许的类型不匹配,则可以显示错误消息并忽略文件。我可以从不同文件夹中拖放文件吗?是的,您可以从不同文件夹中拖放文件。拖放功能不取决于文件的位置。只要用户可以访问这些文件,就可以将它们拖放到网页上。>以上是如何使用HTML5打开删除文件的详细内容。更多信息请关注PHP中文网其他相关文章!