十六、文件访问(File Access)
1、读取文件(Reading a File)
Q:如何将文件读取到JavaScript变量中?
A:根据脚本运行的环境和文件的位置,你可以有以下选项:
关于前两个选项的讨论,请点击上面的超链接。
下面我们会讨论最后的一个——为脚本读取文件的Java applet助手。读取文件机制的一个可能实现如下:
1. 脚本调用applet的一个public方法。
2. 这个public方法在applet的另一个线程中初始化读取过程,然后返回。
3. Applet中另一个线程中的读取过程继续执行。同时,脚本持续问applet是否完成读取。
4. Applet完成读取,把文件内容放在applet的一个public的字符串变量中。
5. 脚本看到applet完成读取。
6. 脚本将文件内容从applet的public变量中复制到JavaScript的变量。
注意未签名的Java applet代码只能读取那些和代码有同一来源(the same origin)的文件。例如,如果你的未签名代码被发布在一个Web服务器上,那么它只允许通过URL阅读在同一个Web服务器上文件。如果你的代码在本地的磁盘上,那么(最多)它只能阅读在同一个磁盘上的文件。
如果你想阅读有不同来源的文件,你需要对代码签名。(更多信息,请参考写文件;十分相似的安全机制应用于读取那些和代码没有相同来源的文件。)
这里有一个实现了上述读取机制的简单的例子。下面的矩形是一个叫做ReadURL.class的Java applet。这个Applet读取选择的文件内容到一个public变量fileContent中。完成时,applet将它的public变量finished设为1。
Applet好像不被支持,请到原文处操作实例--译者注 |
示例中的脚本读取选择文件,这个文件包含了一个这个FAQ讨论的一些内容。
Choose a file to read
JavaScript FAQ Home (file startpag.htm)
Reading a File (file reading2.htm)
Writing a File (file writinga.htm)
启动读取进程的JavaScript代码如下:
2. 写文件(Writing a File)
Q:如果通过JavaScript写文件?
A:通过JavaScript写文件和从Java Applet写文件一样简单。脚本本身不能写文件,它需要调用一个Java applet的public方法为它完成所有写文件的工作。
坏消息是:
1. 写文件是一个授权操作,因此你的applet必须已经有数字签名以便写文件。
2. 针对Internet Explorer的Applet签名和针对Netscape Navigator的完全不同。
3. 已签名的applet在Netscape Navigator 3中也可能不正产工作。
4. 最坏的是,把授权操作放在已签名的applet的public方法中是非常不安全。如果你发布了这样一个applet,恶意代码可以很容易的推翻applet的public方法,你(applet发布者/签署者)将会因为任何破坏被起诉。
因此,尽管在主流浏览器的版本4中技术上可行,没有人通过签名的applet发布写文件的脚本。
分享到:
相关推荐
NULL 博文链接:https://dbajun.iteye.com/blog/242763
利用JavaScript实现图片标注——SearchMapIdentityTask
JavaScript代码生成器——Coffee Script.pdf
教你一天玩转JavaScript(三)——使用JavaScript完成图片轮播的效果
JavaScript调用java方法——dwr步骤.docx
JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools JavaScript框架高级编程——应用Prototype、YUI、Ext JS、Dojo、MooTools
教你一天玩转JavaScript(五)——使用JavaScript完成注册页面表单提示及校验
教你一天玩转JavaScript(四)——使用JavaScript实现定时弹出广告定时隐藏广告
1.实现文档对象的属性; 2.实现文档对象的属性方法; 3.实现文档对象的使用... ...答: Var tables = document.getElementsByTagName("table");...alert("This document contains contains"+tables.length+"tables");
教你一天玩转JavaScript(八)——使用JavaScript完成省市联动的效果
JavaScript凌厉开发——Ext详解与实践 源码 源代码 part3 因为源代码比较大,压缩后76M左右 所以分为四个包上传
教你一天玩转JavaScript(七)——使用JavaScript完成复选框的全选和全不选的效果
管理系统系列--全JavaScript语言Web项目——图书管理系统
教你一天玩转JavaScript(六)——使用JavaScript完成后台数据展示表格的隔行换色
javascript 原生实现 省市区街——四级联动
教你一天玩转JavaScript(二)——完成对注册页面的数据的简单校验
js处理文件——文件读写例子.zip,很不错的例子!
JavaScript网页开发——体验式学习教程.pdf JavaScript网页开发——体验式学习教程.pdf
JavaScript凌厉开发——Ext详解与实践_源码清单JavaScript凌厉开发——Ext详解与实践_源码清单JavaScript凌厉开发——Ext详解与实践_源码清单
JavaScript凌厉开发——Ext JS3详解与实践JavaScript凌厉开发——Ext JS3详解与实践