浏览按钮以选择目录

我想在我的网页中创建一个浏览按钮来选择目录而不是文件。 我知道输入类型文件在这里不起作用,但有任何方法可以使用Javascript。 我想获得客户端机器的文件路径,这可能在IE浏览器,但其他浏览器不支持,但这对我来说没问题。

我遇到的问题是如何在按钮中获取文件目录。

下面是我用来从浏览器调用applet但我从bootclasspath中检测到的代码:浏览器中的C:\ PROGRA~1 \ Java \ jre7 \ lib \ deploy.jar错误。 我使用Java 1.5编译了类文件

 

 public class BrowsePage extends JApplet { @Override public void paint(Graphics g) { // TODO Auto-generated method stub JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle("Browse the folder to process"); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { System.out.println("getCurrentDirectory(): "+ chooser.getCurrentDirectory()); System.out.println("getSelectedFile() : "+ chooser.getSelectedFile()); } else { System.out.println("No Selection "); } } } 

你为什么要在你的paint方法中调用它? 这可能是尝试创建新的窗口每小时painted小程序。

 public void paint(Graphics g) { // TODO Auto-generated method stub JFileChooser chooser = new JFileChooser(); /*...*/ 

相反,在init方法中创建一个JButton并将ActionListener附加到它…

 public void init() { setLayout(new GridBagLayout()); JButton browse = new JButton("..."); browse.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new java.io.File(".")); chooser.setDialogTitle("Browse the folder to process"); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setAcceptAllFileFilterUsed(false); if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { System.out.println("getCurrentDirectory(): "+ chooser.getCurrentDirectory()); System.out.println("getSelectedFile() : "+ chooser.getSelectedFile()); } else { System.out.println("No Selection "); } } }); add(browse); } 

您可能还想看一下Applet可以做什么和不能做什么

在Web浏览器中获取本地浏览对话的唯一方法是使用 ,或使用Java Applet或Adobe Flash插件。 在Web浏览器中没有内置的方法可以从JS获取目录引用。

此外,您无法读取客户端硬盘的内容,甚至无法通过JavaScript启动浏览对话。 如果你能够,它会带来相当大的安全问题。

在阅读目录时,请查看以下post:

使用javascript进行本地文件访问

无需上传即可获取本地文件的内容

Javascript:获取本地服务器端文件的内容

听到它的声音,你需要编写一个flash插件,让你在本地选择一个目录。 但是,下载插件时,您的用户将收到安全警告。

编辑:

还有基于webkit的方法,但这只适用于基于webkit的浏览器(Chrome,Safari等)。

如何在我自己的代码中使用Google Chrome 11的上传文件夹function?