场景是 动漫设计的时候,会有一条记录与网盘上的一个文件夹对应,文件夹里放的是相关资源。现在就是想点击jsp页面,打开相应的文件夹,然后把图片或什么文件放进去作为参考或者反馈。然后制作人员点击jsp直接定位到文件夹可以查看反馈。
打开效果如图
ie浏览器特有的activeX 能够实现。但是其他浏览器不兼容。
ie的js代码为:
function openFileIIs(){
var filename = "d:\\test\\";
try{
var obj=new ActiveXObject("wscript.shell");
if(obj){
obj.Run("\""+filename+"\"", 1, false );
//obj.run("osk");/*打开屏幕键盘*/
//obj.Run('"'+filename+'"');
obj=null;
}
}catch(e){
alert("请确定是否存在该盘符或文件");
}
}
一个是把文件放到这个地方,另一个是从这个地方把文件拿出来,用上传下载就行吧?
打开这种文件浏览器窗口后,基本跟程序没啥关系了。 就和平常操作电脑一样。要的就是这种直观的,直接打开也不用下载
@Mr、Bo: 那通过你说的activeX可以的,不过这是js的对象,你说其他浏览器不兼容的话你可以参考这个:
http://blog.csdn.net/cofesun/article/details/7904887
@大可怕: 这是ie特有的,参考也没用
@Mr、Bo: JavaScript有个特殊的对象ActiveXObject,通过它可以访问windows的本地文件系统和应用程序
@大可怕:
3、 调用本地 .bat
文件
这个方法稍微复杂些,用类似网页打开迅雷等应用的方法,做一个协议注册到系统注册表里,如下
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\TEST] @="TEST" "URL Protocol"="" [HKEY_CLASSES_ROOT\TEST\DefaultIcon] @="C:\\test.bat" [HKEY_CLASSES_ROOT\TEST\shell] [HKEY_CLASSES_ROOT\TEST\shell\open] [HKEY_CLASSES_ROOT\TEST\shell\open\command] @="C:\\test.bat \"%1\""
test.bat
内容
@ECHO off SET dir=%1 ECHO explorer /root,%dir:~8,-2% explorer /root,%dir:~8,-2% EXIT
然后网页上这样写
<a href="test://C:\文件夹">Test</a> 或 <a href="test://C:\test">Test</a>
这样,test://
打开本地的 test.bat
,test.bat
又接收一个参数 C:\文件夹
打开文件夹,运行纯英文目录是没问题的,中文不行,后来发现传的参数被 Chrome 转码了。