HTML5中input框读取文本文件内容的例子

使用 type 属性为 file 的 <input> 元素,就能得到一个标准的上传文件框。除了能在<form>元素中将文件发送给Web服务器外,这个<input>也有自己处理文件的方式。

在HTML5中,大幅度地增加与改良了input属性的种类,可以简单的使用这些属性来实现之前需要使用JavaScript才能实现的。对于html5中新增的input属性支持得最多、最全面的是Opera浏览器。

1. type属性

html5中input的type属性增的可取值新增几种,对于不支持这几种新增值的浏览器会统一解析为text类型

1,选择文件后,我们可以获取其中的文件对象属性

每个文件对象都有三个有用的属性:
   name:保存文件名(不包含路径)
   size:文件的字节大小
   type:保存文件的MIME类型
可以分别读取这三个属性,然后加入判断。比如拒绝处理超过一定大小的文件,或者只允许某种类型的文件。

2,创建FileReader对象,处理文件

通过调用 FileReader 的方法可以提取文件内容。其提供的方法有:
   readAsText():把文件内容转换成一个长字符串,这个方法只能处理包含文本内容(而不是二进制内容)的文件。(像txt、html、xml、csv等格式文件都可以)
   readAsBinaryString():让应用处理二进制编码的数据,但基本上就是把数据保存到一个文本字符串中,效率不高。
   readAsArrayBuffer():将数据读到一个数组中,每个数组项代表一个字节。其优势是可以用来创建Blob对象,然后切分成更小的二进制数据块,以便逐块处理。
   readAsDataURL():能让我们方便地取得图片数据。

3,读取文件数据以及相关属性样例

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Read Text</title>
  <style>
    div {
     margin-top: 30px;
     border: solid 1px black;
     padding: 5px;
    }
  </style>
  <script>
    function processFiles(files) {
      var file = files[0];
 
      var message = document.getElementById("message");
      message.innerHTML = "文件名:" + file.name + "<br>";
      message.innerHTML += "文件大小:" + file.size + "字节<br>";
      message.innerHTML += "文件类型:" + file.type + "<br>";
      
      var reader = new FileReader();
      reader.onload = function (e) {
        // 这个事件发生,意为着数据准备好了
        // 把它复制到页面的<div>元素中
        var output = document.getElementById("fileOutput"); 
        output.textContent = e.target.result;
      };
      reader.readAsText(file);
    }
  </script>
</head>
<body>
  <input id="fileInput" type="file" size="50" onchange="processFiles(this.files)">
  <div id="message"></div>
  <div id="fileOutput"></div>
</body>
</html>

 

时间: 2024-09-27 00:26:52

HTML5中input框读取文本文件内容的例子的相关文章

JS双击变input框批量修改内容_javascript技巧

双击空白或者文字变成input框修改内容: html代码 <td class="center" ondblclick="ShowElement(this,'intro')">{$vo.intro}</td> <td class="center" ondblclick="ShowElement(this,'address')">{$vo.address}</td> js代码 //双

pdf-将jsp页面中input的表单内容用PDF或者word打开

问题描述 将jsp页面中input的表单内容用PDF或者word打开 求教,怎么将jsp页面中input的表单内容用PDF或者word打开,感谢各位相助! 做了一个表单jsp页面,要求输入用户的各项信息,例如姓名,密码,性别,出生年月,爱好之类的,然后提交信息,显示刚才输入的内容,然后要求可以用PDF或者word打开,菜鸟一枚,不知该用到什么技术? 解决方案 http://blog.163.com/yurong_1987@126/blog/static/475178632009327221532

Domino中运用jQuery读取视图内容的方法_jquery

jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents.events.实现动画效果,并且方便地为网站或系统提供AJAX交互. 在Domino中应用jQuery框架能够大量简化js代码,并使得js的程序更加简洁和直观,下面是一个简单的例子,在表单中简单运用jQuery来读取视图内容. 1.在表单中加入以下代码并内置HTML: html 代码: <input type=button onclick="GetViewContent()"

Java小例子:按指定的编码读取文本文件内容

InputStreamReader 的构造函数提供了一个参数,用于指定通过什么编码将 读取到的字节流转换成字符.下面是一个例子: 01./** 02. * 读取指定的文本文件,并返回内容 03. * 04. * @param path 文件路径 05. * @param charset 文件编码 06. * 07. * @return 文件内容 08. * 09. * @throws IOException 如果文件不存在.打开失败或读取失败 10. */ 11.private static S

PHP 读取文本文件内容并分页显示_php实例

功能很简单,只是使用 PHP 读取文本(TXT)文件 并分页显示 <?php //----------------you should save this file as m.php---------------- session_start(); if (empty($page)) {$page=1;} if (isset($_GET['page'])==TRUE) {$page=$_GET['page']; } ?> <html> <head> <meta h

php读取文本文件内容

//fopen 读取文件实例  代码如下 复制代码 $path ='a.txt'; $fp=fopen($file,"r");//以只读的方式打开文件 while(!(feof($fp))) {  $text=fgets($fp);//读取文件的一行  echo $text;     } //file_get_contents读取文件  代码如下 复制代码 if( file_exists( $path ) ) {     $body = file_get_contents($path)

html5中文本框输入内容提示消失

例1  代码如下 复制代码 <div><input type="email" name="email" spellcheck="false" placeholder="邮 箱" autofocus tabindex="1" x-webkit-speech></div> <div><input type="password" name=

问题:Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?【原创】

现象: 点"是(Y)" 提示信息中提到的error242440_02.xml文件:   问题重现: package poi; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.apache.poi.ss.usermodel.Cell; import org.ap

在第一个input框内输入内容.textarea自动得到第一个文件框的值的javascript代码_表单特效

如何在第一input内输入内容.textarea自动得到第一个文件框的值;      也就是说第一个input边输入textarea边得值      谢谢 <input   type=text   name="mytxt"   onkeyup="myTxta.value=this.value">      <textarea   name='myTxta'>      </textarea> <input   type=&q