浏览按钮以选择目录
我想在我的网页中创建一个浏览按钮来选择目录而不是文件。 我知道输入类型文件在这里不起作用,但有任何方法可以使用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?