总体介绍
文件的选择、保存对话框,使用Java 很容易达成。
如果想在Web端使用的话,可以用Applet 达成。
但如果想使用HTML, js 达成的话,也是可以的。不过
web程序对客户机的文件进行读写是不安全的。ActiveXObject是IE特有的。这种东西本身就是不安全的.
文件选择框通用方式
最常用的就是使用如下方式:<input type="file" />这是HTML的标签,基本适用所有的浏览器。产生的效果是带有一个文本框和一个浏览按钮。(在 各浏览器的实际效果可能不一样)
点击"浏览" 按钮就可以打开文件选择的dialog 了, 选择文件后, 文件路径就保存在这个 input 的 value的属性里了。如下例子:
<!--Add by oscar999--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Author" CONTENT="oscar999"> <script> function getSelectFile() { var fileName = document.getElementById("fileSelect").value; alert(fileName); } </script> </HEAD> <BODY> <input id="fileSelect" type="file" /> <input value="Get File" type="button" onclick="getSelectFile();"/> </BODY> </HTML>
文件保存对话框
你可能会问,既然选择对话框有了, 为什么还需要保存的对话框呢?
因为在选择对话框里,不能选择(或输入)一个不存在文件名,所以这对于保存来说不适用。
1. 方式一: 使用ActiveX控件,仅支持 IE
2. 使用document.execCommand('SavaAs'), 仅支持 IE
除了IE,其他浏览器貌似都没有打开保存的窗口,用替代方案,直接填入路径:
因为在选择对话框里,不能选择(或输入)一个不存在文件名,所以这对于保存来说不适用。
1. 方式一: 使用ActiveX控件,仅支持 IE
<!--Add by oscar999--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Author" CONTENT="oscar999"> <script> function saveFile() { fileDialog.CancelError=true; try{ fileDialog.Filter="HTM Files (*.html)|*.html|Text Files (*.txt)|*.txt"; fileDialog.ShowSave(); } catch(e){} } </script> </HEAD> <BODY> <object id="fileDialog" width="0px" height="0px" classid="clsid:F9043C85-F6F2-101A-A3C9-08002B2F49FB" codebase="http://activex.microsoft.com/controls/vb5/comdlg32.cab"> </object> <input type=button value="Save" onclick="saveFile()" </BODY> </HTML>
2. 使用document.execCommand('SavaAs'), 仅支持 IE
<!--Add by oscar999--> <html> <head> <title> New Document </title> </head> <body> <input type="button" value="Save" onclick="document.execCommand('SaveAs')"> </body> </html>
除了IE,其他浏览器貌似都没有打开保存的窗口,用替代方案,直接填入路径:
<!--Add by oscar999--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Author" CONTENT="oscar999"> <script> function smt(){ path = prompt("Please Input Path",""); } </script> </HEAD> <BODY> <input type="button" value="Save" onclick="smt()"> </BODY> </HTML>
获取路径后的处理
获取保存路径后,如何创建文件可以参考:JavaScript创建与读写本地文件(IE&Firefox)