`
zzc1684
  • 浏览: 1221124 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

FileReader:读取本地图片文件并显示

阅读更多

 

 

要想在页面上显示本地图片,以前我们通常的做法是将选择的图片文件上传至后端服务器,后端对其进行存储,再将图片的URL返 回到前端,前端通过这个URL来显示图片。而HTML5的FileReader接口支持本地预览,FileReader接口主要是将文件读入内存,并提供 相应的方法,来读取文件中的数据,当然就能显示本地图片不需上传了。目前高级浏览器实现了FileReader接口,所以像IE6这些老东西直接滚粗。

在此之前,我们有文章:HTML5应用之文件拖拽上传,看完这篇文章后,你可以尝试制作一个拖拽和显示图片、编辑图片、最后上传的功能。

HTML

第一步创建html,我们在页面中放置一个文件选择的input#file_input和一个显示结果的div#result。

<p> 
   <label>请选择一个图像文件:</label> 
   <input type="file" id="file_input" /> 
</p>  
<div id="result"></div> 

Javascript

通过getElementById获取节点,判断浏览器的兼容性,对于不支持FileReader接口的浏览器将给出一个提示并禁用input,否则监听input的change事件。

var result = document.getElementById("result"); 
var input = document.getElementById("file_input"); 
 
if(typeof FileReader==='undefined'){ 
    result.innerHTML = "抱歉,你的浏览器不支持 FileReader"; 
    input.setAttribute('disabled','disabled'); 
}else{ 
    input.addEventListener('change',readFile,false); 
} 

然后,当file_input的change事件触发时,调用函数readFile()。在readFile中,我们首先获取file对象,然后通过file的type属性来检测文件类型,我们当然只允许选择图像类型的文件,然后我们new一个FileReader实例,并调用readAsDataURL方法来读取选中的图像文件,最后在onload事件中,获取到成功读取的文件内容,并以插入一个img节点的方式显示选中的图片。

function readFile(){ 
    var file = this.files[0]; 
    if(!/image\/\w+/.test(file.type)){ 
        alert("文件必须为图片!"); 
        return false; 
    } 
    var reader = new FileReader(); 
    reader.readAsDataURL(file); 
    reader.onload = function(e){ 
        result.innerHTML = '<img src="'+this.result+'" alt=""/>' 
    } 
} 

怎么样,可以看来我们并没有和后台交互就能将本地图片显示在页面中,最后我们来了解下FileReader的方法和事件。

FileReader的方法和事件

参数/事件 描述
方法
abort 中断读取
readAsText(file, [encoding]) 将文件读取为文本
该方法有两个参数,其中第二个参数是文本的编码方式,默认值为 UTF-8。这个方法非常容易理解,将文件以文本方式读取,读取的结果即是这个文本文件中的内容。
readAsBinaryString(file) 将文件读取二进制码
通常我们将它传送到后端,后端可以通过这段字符串存储文件
readAsDataURL(file) 将文件读取为DataURL
将文件读取为一串Data URL字符串,将小文件以一种特殊格式的URL地址直接读入页面。小文件指图像与html等格式的文件。
事件
onabort 数据读取中断时触发
onerror 数据读取出错时触发
onloadstart 数据读取开始时触发
onload 数据读取成功完成时触发
onloadend 数据读取完成时触发,无论成功失败
声明:本文为原创文章,helloweba.com和作者拥有版权,如需转载,请注明来源于helloweba.com并保留原文链接:http://www.helloweba.com/view-blog-224.html

 

分享到:
评论

相关推荐

    filereader:filereader,一个用于读取本地文件的 jQuery 扩展

    文件阅读器filereader,一个用于读取本地文件的 jQuery 扩展这组实用程序允许我们直接从 jQuery 访问 HTML5 FileReader API。 可用功能: $.canReadFiles() 如果当前浏览器实现了 FileReader API,则返回 true $....

    Html读取本地文件夹下图片并显示的示例代码

    在Html上选择本地文件夹,自动读取文件夹及子文件夹下的所有图片并显示在页面。 技术分析: 存在问题 Html中file标签获取到的路径时相对的。 Html中Img指定源时需要的是绝对路径。 解决方法: 调用Web API接口...

    JavaScript通过filereader接口读取文件

    JavaScript通过FileReader接口读取文件的知识点主要涵盖了如何使用FileReader对象来读取本地文件系统中的文件,其中重点介绍了使用readAsDataURL方法来预览图片文件。这一过程涉及到前端开发中的文件操作与DOM操作,...

    html5实现页面的显示本地图片

    在“html5实现页面的显示本地图片”这个主题中,我们主要关注的是HTML5的`&lt;input type="file"&gt;`标签以及File API,它们允许用户选择本地图片并在网页上预览或处理。 **1. `&lt;input type="file"&gt;`标签** `...

    cocos creator 网页获取电脑本地图片并显示

    这个示例中,我们创建了一个输入框来让用户选择文件,并在文件选择后读取并显示图片。 通过以上步骤,您可以在Cocos Creator的Web项目中实现从电脑本地获取并显示图片的功能。在实际项目中,可能还需要考虑错误...

    Springboot读取本地json文件工程

    首先,需要在`pom.xml`文件中引入Jackson依赖,然后使用`ObjectMapper`类读取JSON文件: ```xml &lt;!-- 在pom.xml中添加Jackson依赖 --&gt; &lt;groupId&gt;com.fasterxml.jackson.core&lt;/groupId&gt; &lt;artifactId&gt;jackson-...

    JS读取本地文件夹和图片异步加载(图片LazyLoad)

    在浏览器环境中,出于安全考虑,JavaScript无法直接访问用户的本地文件系统。但是,HTML5引入了File API,通过这个API,用户可以选择文件并进行读取。以下是一个简单的文件选择示例: ```javascript document....

    c#实现文件读写并显示读写进度

    以下是一段简单的代码框架,展示如何读取和写入文件: ```csharp using System; using System.IO; using System.Windows.Forms; class Program { static void Main() { string filePath = "test.txt"; // 文件...

    js读取本地文件到字节数组

    本文将详细介绍如何使用JavaScript来读取本地文件并将其转换为字节数组。 #### 基本原理 在现代浏览器中,`FileReader` API 提供了读取文件的能力。它支持多种格式的数据读取,其中一种就是将文件内容读取为字节...

    AJAX实现读取本地文本文档内容并展示在网页上

    对于读取本地文本文档,由于浏览器的安全限制,直接使用AJAX无法访问本地文件系统。因此,我们需要使用HTML5的File API来实现这一功能。用户通常需要通过文件输入控件(`&lt;input type="file"&gt;`)选择文件,然后使用...

    javascript 读取本地文件

    在探讨“JavaScript读取本地文件”的主题时,我们主要聚焦于如何利用JavaScript在浏览器环境中读取用户计算机上的本地文件。这种功能在很多场景下都极为有用,比如在上传文件前预览其内容、数据导入导出操作等。下面...

    html打开本地DCM文件并显示.rar

    但是,通过特定的技术手段,如使用File API或Web Workers,可以在用户许可的情况下读取本地文件。在这个案例中,实现这一功能可能涉及到以下步骤: 1. **用户交互**:首先,用户需要通过HTML5的`...

    fileReader:PHP文件管理器

    2. 文件上传:允许用户通过网页上传本地文件到服务器指定位置。 3. 文件下载:用户可以下载服务器上的文件到本地。 4. 文件编辑:如果支持的话,用户可以在线编辑文本文件,如.txt或.csv等。 5. 文件操作:包括...

    js base46转码、保存图片到本地、img显示本地图片.zip

    例如,通过`FileReader` API读取本地文件: ```javascript let input = document.querySelector('input[type="file"]'); input.addEventListener('change', function(e) { let file = e.target.files[0]; if ...

    unigui_ajax读取本地文件信息

    总的来说,"unigui_ajax读取本地文件信息"涉及的关键知识点包括:Unigui框架的使用、Ajax技术、JavaScript的FileReader API、客户端与服务器的异步通信、文件上传的安全处理以及后台服务端的文件处理逻辑。理解并...

    JQuery实现本地文件的读取、文件内容的复制

    在实际应用中,我们可以创建一个函数,接收文件对象,使用FileReader读取内容,然后将结果传递给剪贴板API。这样,用户就能方便地复制文件内容。 示例代码: ```javascript function copyFileContent(file) { ...

    H5 FileReader读取shp文件

    以上就是H5 FileReader读取shp文件及其相关文件并加载到地图上的核心知识点,涉及到的技术包括HTML5 API、第三方库的使用、地理数据解析以及地图绘制。理解并掌握这些技能,可以实现Web端的离线GIS应用,提供更丰富...

    读取手机本地图片和文本文件(Lwuit版)

    这篇博客“读取手机本地图片和文本文件(Lwuit版)”主要讲解了如何在LWUIT应用中访问和处理手机本地的图片与文本文件。这里我们将详细探讨这一主题。 首先,读取本地图片文件通常涉及以下步骤: 1. **获取文件...

    js读取本地Excel

    为了实现这个功能,我们需要借助一些库和API,因为浏览器本身并不支持直接读取本地文件。以下是一些关键知识点: 1. **FileReader API**: 这是HTML5引入的一个接口,允许Web应用异步读取用户选择的文件或文件流。...

    基于FileReader多图片上传特效源码.zip

    8. **安全性**:虽然FileReader允许访问本地文件,但出于安全考虑,它只能读取用户明确选择的文件,不能遍历用户整个文件系统。 综上所述,"基于FileReader多图片上传特效源码.zip"提供的示例展示了如何利用HTML5的...

Global site tag (gtag.js) - Google Analytics