使用JavaScript 操作本地文件

显示用户选择文件【图片】实现code如下

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="utf-8">
 5     <title>JavaScript显示用户选取的图片</title>
 6 </head>
 7 <body>
 8    <div>
 9      <input type="file" name="picture" onchange="selectPicture(this)"
10     accept="image/gif,image/jpeg,image/jpg,image/png" />
11      <img src="" width="240px" id="image"/>
12    </div>
13    <script type="text/javascript">
14            function selectPicture(evt){
15             if (!evt.files || !evt.files[0]) {
16                 return;
17             }
18             console.log(evt.files);
19             var fileName = evt.files[0].name,  //文件名,该属性只读
20                 fileSize = evt.files[0].size,  //文件大小,单位为字节,该属性只读;(1KB = 1024Bytes; 1MB = 1024KB)
21                 fileType = evt.files[0].type; //文件类型 文件的MIME类型,如果分辨不出类型,则为空字符串,该属性只读。
22             console.log("文件总的大小"+fileSize);
23             //FileReader包含了一套完整的事件模型,用来捕获读取文件时的状态:
24             var reader = new FileReader();
25                //onerror 文件读取出错
26                reader.onerror = function(){
27                    console.log("文件读取出错...");
28                }
29                //文件读取中
30                reader.onprogress = function(evt){
31                    console.log(evt);
32                    console.log(evt.loaded); //当前文件读取进度
33                    console.log("文件读取中...");
34                    if(evt.lengthComputable){
35                       //当前上传进度
36                       console.log(Math.round((evt.loaded/fileSize)*100)+"%");
37                    }
38                }
39                //文件读取成功完成时触发
40                 reader.onload = function (evt) {
41                     document.getElementById(‘image‘).src = evt.target.result;
42                     console.log(fileName);
43                     console.log(fileSize);
44                     console.log(fileType);
45                 }
46                 //将文件读取为DataURL  返回一个基于Base64编码的data-uri对象
47                 reader.readAsDataURL(evt.files[0]);
48            }
49    </script>
50 </body>
51 </html>
52
53     
上述打印 evt.files日志log信息

File  提供有关文件的信息,并允许网页中的 JavaScript 访问其内容
FileList 对象通常来自于一个HTML input元素的files属性,你可以通过这个对象访问到用户所选择的文件
有关File文件对象几个属性
lastModified 返回当前 File 对象所引用文件最后修改时间(单位:毫秒数; 属性:只读);
type 返回文件的 多用途互联网邮件扩展类型(属性:只读);
name 返回当前 File 对象所引用文件的名字(属性:只读);
size 返回文件的大小(属性:只读);
webkitRelativePath 返回 File 相关的 path 或 URL(属性:只读);
lastModifiedDate 返回当前 File 对象所引用文件最后修改时间的 Date 对象 (属性:只读);

FileReader  对象允许Web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据

onerror 文件读取出错
onprogress 文件读取中
onload 文件读取成功完成时触发
readAsBinaryString(Blob|File):返回二进制字符串,该字符串每个字节包含一个0到255之间的整数。
readAsText(Blob|File, opt_encoding):返回文本字符串。默认情况下,文本编码格式是’UTF-8’,可以通过可选的格式参数,指定其他编码格式的文本。
readAsDataURL(Blob|File):返回一个基于Base64编码的data-uri对象。
readAsArrayBuffer(Blob|File):返回一个ArrayBuffer对象。

资料参考

https://developer.mozilla.org/zh-CN/docs/Web/API/FileReader

http://javascript.ruanyifeng.com/htmlapi/file.html

原文地址:https://www.cnblogs.com/zjf-1992/p/8282449.html

时间: 2024-10-29 15:40:17

使用JavaScript 操作本地文件的相关文章

javascript利用Active操作本地文件

目的:实现静态文本读取本地文件功能 Javascript脚本如下 var fso, f1, ts, s;var ForReading=1;fso=new ActiveXObject("Scripting.FileSystemObject");f1=fso.CreateTextFile("d:\\estfile.txt",true);f1.WriteLine("Hello World!");f1.WriteBlankLines(1);f1.Clos

javascript 学习笔记 -- js获取本地文件信息

JavaScript是跑在浏览器中,所以对于JavaScript读取本地文件不想c++ 和 java那样easy.网上有很多关于读取本地文件的方法,许多是用ActiveXObject控件.ActiveXObject是微软特有的,只能在IE内核的浏览器中运行,所以也不是一个好方法. 这里,介绍一种用Xml读取本地文件的方法. 第一步: Ngnix 服务器配置 下载ngnix(http://nginx.org/en/download.html), 解压缩之后,打开nginx\conf\nginx.c

前端本地文件操作与上传

前端无法像原生APP一样直接操作本地文件,否则的话打开个网页就能把用户电脑上的文件偷光了,所以需要通过用户触发,用户可通过以下三种方式操作触发: 通过input type="file" 选择本地文件 通过拖拽的方式把文件拖过来 在编辑框里面复制粘贴 第一种是最常用的手段,通常还会自定义一个按钮,然后盖在它上面,因为type="file"的input不好改变样式.如下代码写一个选择控件,并放在form里面: <form> <input type=&q

Ajax请求本地文件

当你访问到这个博客的时候,可能要让你失望了,这篇博客不是介绍怎样实现Ajax请求本地文件,而是劝兄弟姐妹们放弃吧. 想想别的办法,如利用C等 也许在很多年前,Ajax请求本地文件可以实现,例如IE的Active插件会让你实现很多你可能想到的操作本地文件的需求,但是今天,不可以了. 在W3C官网上,Ajax请求明确提出AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加

JavaScript进阶 九 JS实现本地文件上传至阿里云服务器

JS实现本地文件上传至阿里云服务器 前言 在前面的博客< JavaScript进阶(八)JS实现图片预览并导入服务器功能>(点击查看详情)中,实现了JS将本地图片文件预览并上传至阿里云服务器的操作.这次需要实现将本地打包好的文件上传至阿里云服务器.使用前面的图片文件上传方法无法完成此操作.操作界面如下: 思路 本地与服务端传输文件的格式应该是熟悉的Base64格式.首先需要将本地文件转换为Base64格式,传输至服务端后,在服务端再将Base64格式的文件转换为原始文件. 源码解析 控制器 /

HTML5 本地文件操作之FileSystemAPI实例(二)

文件操作实例整理二 1.删除文件.复制文件.移动文件 //获取请求权限 window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; window.requestFileSystem(window.TEMPORARY, 5 * 1024, initFs, errorHandler); function initFs(fs) { //删除文件 fileEntry.remove() fs.

javascript如何将文件保存到本地

javascript如何将文件保存到本地: 下面是保存一个图片为示例,代码来源于网络,希望能够给大家带来一定的帮助,代码如下: <script type="text/javascript"> function saveFile(imgUrl) { var oPop=window.open(imgUrl,"","width=1, height=1, top=5000, left=5000"); for(;oPop.document.re

HTML5 本地文件操作之FileSystemAPI实例(三)

文件夹操作demo 1.读取根目录文件夹内容 window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; window.requestFileSystem(window.PERSISTENT, 5 * 1024, initFs, errorHandler); function initFs(fs) { //显示根目录下的内容 var dirReader = fs.root.creat

HTML5 本地文件操作之FileSystemAPI实例(四)

目录操作Demo二 1.删除目录 window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem; window.requestFileSystem(window.PERSISTENT, 5 * 1024, initFs, errorHandler); function initFs(fs) { //删除目录,子目录创建需要递归,获取可以直接指定'/' //如果子目录不存在,抛出删除异常