最近写一个需求时遇到一个问题,用户需要通过点击一个按钮直接读取他自己电脑上D盘的一个txt文件内容显示到页面,因为项目现在是用ZK写的.我对于ZK也是刚刚了解不就,很多都还不是很熟.起初我是想用io流去读取,然后写完发现,这样每次读取的都是服务器上的D盘下的txt文件,所以在网上找了很久.很多都是获取服务器上的文件夹或者是上传到服务器再读取.直接通过文件地址读取文件内容很少.因为这样很不安全.目前我也只找到了一种,但是只限于IE浏览器.

<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="ZK中使用JS读取客户端txt文件内容问题" border="normal">

<button label="点击获取txt内容" id="butt"/>
   
   <label id="filePath" value="D:\\test.txt" style="display:none"/>
   
   <separator/>
   
   <label id="info" style="color:red"/>
   
   <script><![CDATA[
     zk.afterMount(function(){
        jq("$butt").click(function(){            
           try{    
                var fs =new ActiveXObject("Scripting.FileSystemObject");    
          }catch(e){ 
               alert("浏览器不兼容,安全级别太高,无法读取,请使用IE浏览器打开!");                
          }    
               var ts,s;    
             var str = "";
              var ForReading = 1;
               //文件路径,这里是写死在label
               var path = jq("$filePath").text();//这里用 .val()获取不到值,毕竟不是jsp
            //读取文件的内容。      
            ts = fs.OpenTextFile(path,ForReading,true);    
           while(!ts.AtEndOfStream){  
               s  = ts.ReadLine(); 
               str+=s; 
           }  
           ts.Close();
            jq("$info").text(str);  
         });
     });
   ]]></script>
   
</window>
</zk>

因为ActiveX是IE流量器的插件,所以这个只能在IE浏览器可用.如果你发现IE浏览器也没出来,那你可能是ActiveX插件相关功能没开,需要在IE浏览器进行如下设置

然后就出来了,但是这样网也就会提示 存在安全风险,没办法,这种操作本来就是不安全的行为.其他浏览器,目前我只知道必须用户通过手动选择文件后在读取文件内容,没发现能通过文件路径直接去读取客户端电脑上的文件.如果哪位大神知道,可以分享给我哦.

ZK中使用JS读取客户端txt文件内容问题的更多相关文章

  1. Java基础-输入输出-2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt ...

  2. 字节流,读取 a.txt 文件内容,并打印出来

    import java.io.FileInputStream;import java.io.IOException; /** 字节流,读取 a.txt 文件内容,并打印出来 */public clas ...

  3. 编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    package zuoye; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcep ...

  4. 2.编写IoDemo.java的Java应用程序,程序完成的功能是:首先读取text.txt文件内容,再通过键盘输入文件的名称为iodemo.txt,把text.txt的内容存入iodemo.txt

    package zuoye; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; ...

  5. js读取本地txt文件中的json数据

    list.txt内容 [ {"optionKey":"1", "optionValue":"Canon in D"}, ...

  6. php读取外部txt文件内容并打印在页面|fopen()函数

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...

  7. iOS案例:读取指定txt文件,并把文件中的内容输出出来

    用到的是NSString中的initWithContentsOfFile: encoding方法 // // main.m // 读取指定文件并输出内容 // // Created by Apple ...

  8. JS读取/创建本地文件及目录文件夹的方法

    原文链接:http://www.cnblogs.com/ayan/archive/2013/04/22/3036072.html 注:以下操作只在IE下有效! Javascript是网页制作中离不开的 ...

  9. Java 读取 txt 文件内容到容器 List

    方法一: 一.桌面上准备 DataObject.txt 文件,内容为: 二.打开 Eclipse,编写代码如下: import java.io.BufferedReader; import java. ...

随机推荐

  1. @PathVariable不起作用,报错:Cannot resolve @PathVariable ' '

    @PathVariable是占位符注解.可以把Url中变量的值传递到方法参数中. 示例如下: @PostMapping("/user/name/{id}") @ResponseBo ...

  2. if, if/else, if /elif/else,case

    一.if语句用法 if expression then command fi 例子:使用整数比较运算符 read -p "please input a integer:" a if ...

  3. 第12组 Beta冲刺(5/5)

    Header 队名:To Be Done 组长博客 作业博客 团队项目进行情况 燃尽图(组内共享) 展示Git当日代码/文档签入记录(组内共享) 注: 由于GitHub的免费范围内对多人开发存在较多限 ...

  4. kafka发送超大消息设置

    最近开发一cdc框架,为了测试极端情况,需要kafka传递100万条数据过去,1个G左右,由于其他环节限制,不便进行拆包(注:测下来,大包走kafka不一定性能更好,甚至可能更低). 测试百万以上的变 ...

  5. 小数末尾是0的,不显示0,有值才显示 StringFormat

    JAVA public static void main(String[] args) { DecimalFormat df = new DecimalFormat("###.##" ...

  6. C++之future和promise

    future和promise的作用是在不同线程之间传递数据.使用指针也可以完成数据的传递,但是指针非常危险,因为互斥量不能阻止指针的访问:而且指针的方式传递的数据是固定的,如果更改数据类型,那么还需要 ...

  7. k8s添加凭证

    请参照:https://www.cnblogs.com/effortsing/p/10013441.html

  8. [LeetCode] 248. Strobogrammatic Number III 对称数III

    A strobogrammatic number is a number that looks the same when rotated 180 degrees (looked at upside ...

  9. Django文档阅读之查询

    创建对象 为了在Python对象中表示数据库表数据,Django使用直观的系统:模型类表示数据库表,该类的实例表示数据库表中的特定记录. 要创建对象,请使用模型类的关键字参数对其进行实例化,然后调用s ...

  10. 使用TCP的协议有哪些?使用UDP的协议有哪些?

    运行于TCP协议之上的协议: HTTP协议:超文本传输协议,用于普通浏览 HTTPS协议:安全超文本传输协议,身披SSL外衣的HTTP协议 FTP协议:文件传输协议,用于文件传输 POP3协议:邮局协 ...