iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript如何操作文件
  • 781
分享到

JavaScript如何操作文件

2024-04-02 19:04:59 781人浏览 八月长安
摘要

小编给大家分享一下javascript如何操作文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在html表单中,可以上传文件的

小编给大家分享一下javascript如何操作文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

html表单中,可以上传文件的唯一控件就是<input type="file">。

注意:当一个表单包含<input type="file">时,表单的enctype必须指定为multipart/fORM-data,method必须指定为post,浏览器才能正确编码并以multipart/form-data格式发送表单的数据。

出于安全考虑,浏览器只允许用户点击<input type="file">来选择本地文件,用JavaScript对<input type="file">的value赋值是没有任何效果的。当用户选择了上传某个文件后,JavaScript也无法获得该文件的真实路径:

通常,上传的文件都由后台服务器处理,JavaScript可以在提交表单时对文件扩展名做检查,以便防止用户上传无效格式的文件:

var f = document.getElementById('test-file-upload');
var filename = f.value; // 'C:\fakepath\test.png'
if (!filename || !(filename.endsWith('.jpg') || filename.endsWith('.png') || filename.endsWith('.gif'))) {
  alert('Can only upload image file.');
  return false;
}

File API

由于JavaScript对用户上传的文件操作非常有限,尤其是无法读取文件内容,使得很多需要操作文件的网页不得不用Flash这样的第三方插件来实现。

随着HTML5的普及,新增的File api允许JavaScript读取文件内容,获得更多的文件信息。

HTML5的File API提供了File和FileReader两个主要对象,可以获得文件信息并读取文件。

下面的例子演示了如何读取用户选取的图片文件,并在一个<div>中预览图像:

var
  fileInput = document.getElementById('test-image-file'),
  info = document.getElementById('test-file-info'),
  preview = document.getElementById('test-image-preview');
// 监听change事件:
fileInput.addEventListener('change', function () {
  // 清除背景图片:
  preview.style.backgroundImage = '';
  // 检查文件是否选择:
  if (!fileInput.value) {
    info.innerHTML = '没有选择文件';
    return;
  }
  // 获取File引用:
  var file = fileInput.files[0];
  // 获取File信息:
  info.innerHTML = '文件: ' + file.name + '<br>' +
           '大小: ' + file.size + '<br>' +
           '修改: ' + file.lastModifiedDate;
  if (file.type !== 'image/jpeg' && file.type !== 'image/png' && file.type !== 'image/gif') {
    alert('不是有效的图片文件!');
    return;
  }
  // 读取文件:
  var reader = new FileReader();
  reader.onload = function(e) {
    var
      data = e.target.result; // 'data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...'      
    preview.style.backgroundImage = 'url(' + data + ')';
  };
  // 以DataURL的形式读取文件:
  reader.readAsDataURL(file);
});

上面的代码演示了如何通过HTML5的File API读取文件内容。以DataURL的形式读取到的文件是一个字符串,类似于data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...,常用于设置图像。如果需要服务器端处理,把字符串base64,后面的字符发送给服务器并用Base64解码就可以得到原始文件的二进制内容。

回调

上面的代码还演示了JavaScript的一个重要的特性就是单线程执行模式。在JavaScript中,浏览器的JavaScript执行引擎在执行JavaScript代码时,总是以单线程模式执行,也就是说,任何时候,JavaScript代码都不可能同时有多于1个线程在执行。
你可能会问,单线程模式执行的JavaScript,如何处理多任务?

在JavaScript中,执行多任务实际上都是异步调用,比如上面的代码:

reader.readAsDataURL(file);

就会发起一个异步操作来读取文件内容。因为是异步操作,所以我们在JavaScript代码中就不知道什么时候操作结束,因此需要先设置一个回调函数:

reader.onload = function(e) {
  // 当文件读取完成后,自动调用此函数:
};

当文件读取完成后,JavaScript引擎将自动调用我们设置的回调函数。执行回调函数时,文件已经读取完毕,所以我们可以在回调函数内部安全地获得文件内容。

以上是“JavaScript如何操作文件”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网JavaScript频道!

--结束END--

本文标题: JavaScript如何操作文件

本文链接: https://www.lsjlt.com/news/79572.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript如何操作文件
    小编给大家分享一下JavaScript如何操作文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在HTML表单中,可以上传文件的...
    99+
    2024-04-02
  • Javascript如何实现文件操作
    这篇文章主要为大家展示了“Javascript如何实现文件操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Javascript如何实现文件操作”这篇文章吧。一、功能实现核心:FileSyste...
    99+
    2023-06-03
  • python如何操作yml文件
    使用python操作yml文件的方法:1.新建python项目;2.导入yaml和os模块;3.使用os.path.join()方法获取配置文件路径;4.使用read()方法修改yml配置文件;具体步骤如下:首先,打开python,并新建一...
    99+
    2024-04-02
  • Spring boot如何操作文件
    小编给大家分享一下Spring boot如何操作文件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、获取文件路径获取文件路径1、class.getResource(path)其中的参数path有两种形式,一种是以“/”开...
    99+
    2023-06-25
  • JavaScript如何增加本地操作API进行直接操作本地文件
    JavaScript如何增加本地操作API进行直接操作本地文件,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Chrome、IE和Firef...
    99+
    2024-04-02
  • Python如何操作XML文件
    这篇文章主要介绍“Python如何操作XML文件”,在日常操作中,相信很多人在Python如何操作XML文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何操作XML文件”的疑惑有所帮助!接下来...
    99+
    2023-06-30
  • golang中如何操作文件
    本篇内容介绍了“golang中如何操作文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在Go语言中,读取和修改文件是非常常见的需求。在本文...
    99+
    2023-07-05
  • Linux如何实现文件操作
    这篇文章主要介绍了Linux如何实现文件操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。文件是linux中的一个重要概念。在Linux中,一切(几乎一切)都是文件。简单的说...
    99+
    2023-06-28
  • jsp文件操作之如何实现读取操作
    这篇文章主要介绍jsp文件操作之如何实现读取操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!文件操作是网站编程的重要内容之一,asp关于文件操作讨论的已经很多了,让我们来看看jsp中是如何实现的。   这里用到了两...
    99+
    2023-06-03
  • VBS如何实现文本文件操作
    这篇文章给大家分享的是有关VBS如何实现文本文件操作的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。对于文件的操作,例如:生成一个或者打开一个或者删除一个.txt格式文件。虽然官方的FILE插件提供了一些基本功能,...
    99+
    2023-06-08
  • VB.NET如何实现文本文件操作
    这篇文章主要为大家展示了“VB.NET如何实现文本文件操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET如何实现文本文件操作”这篇文章吧。Open:顾名思义,它的作用是打开文件,换而...
    99+
    2023-06-17
  • VB.NET如何实现文件操作
    这篇文章主要介绍VB.NET如何实现文件操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VB.NET文件操作打开和关闭文件 1、顺序文件 打开顺序文件,我们可以使用Open语句。它的格式如下:Open p...
    99+
    2023-06-17
  • 如何使用JS操作文件
    这篇文章主要讲解了“如何使用JS操作文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用JS操作文件”吧!JS读取文件 FileReaderFileReader 对象允许Web应用程序...
    99+
    2023-06-22
  • PHP和JavaScript:如何在NumPy文件中进行数据操作?
    NumPy是一个强大的Python库,用于处理科学计算中的大型多维数组和矩阵。它提供了许多高效的函数和算法,使得数据操作变得更加容易和高效。在本文中,我们将介绍如何使用PHP和JavaScript在NumPy文件中进行数据操作。 在开始之...
    99+
    2023-08-13
    numpy 文件 javascript
  • 如何运用VB.NET控件操作文件
    这篇文章主要介绍如何运用VB.NET控件操作文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!显示文件因为不同文件的存储格式的差异,所以,只有用适当的方法才能正确的显示不同的文件。表现在表层,也就是不同的文件后缀名不...
    99+
    2023-06-17
  • 如何利用JAVA操作EXCEL文件
    这篇文章给大家分享的是有关如何利用JAVA操作EXCEL文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。利用JAVA操作EXCEL文件使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要...
    99+
    2023-06-03
  • Linux上如何实现文件操作
    这篇文章主要介绍了Linux上如何实现文件操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。按名称列出文件最简单的方法是使用 ls 命令按名称列出文件。毕竟,按名称(字母数字...
    99+
    2023-06-15
  • 如何使用VB.NET文件夹操作
    小编给大家分享一下如何使用VB.NET文件夹操作,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!VB.NET文件夹操作代码:'文件夹复制  Function CopyDir()Funct...
    99+
    2023-06-17
  • 文件操作
    文件操作 一、关于文件读写的笔记 (一) 文件概述 文件是一个存储在辅助存储器上的数据序列,可以包含任何数据内容 文件都是按照2进制进行存储的,但在表现形式上有2种:文本文件和二进制文件。 1. 文本文件   文本文件一般由单一特定编码的...
    99+
    2023-01-31
    操作 文件
  • Javascript高级应用:文件操作篇(转)
    Javascript是网页制作中离不开的脚本语言,依靠它,一个网页的内容才生动活泼、富有朝气。但也许你还没有发现并应用它的一些更高级的功能吧?比如,对文件和文件夹进行读、写和删除,就象在VB、VC等高级语言中经常做的工作一样。怎么样,你是否...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作