JavaScript如何弹出文件选择框,然后返回文件完整路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript如何弹出文件选择框,然后返回文件完整路径相关的知识,希望对你有一定的参考价值。

用过email吧?点击“添加附件”,就会弹出文件选择框,选好后我要获得这文件的路径,因为我javamail发送邮件时,需要路径把附件添加到邮件里去一起发送出去。

在IE下很好实现,但是火狐和Google就不行,出于什么狗p安全性的考虑,火狐和Google下只能获得文件名,而不是完整的路径,有什么解决办法。已经问了2个礼拜了,都无解

问题补充:在IE下只要
<input type="file" id="infile" />
然后
document.getElementById("infile").click();
document.getElementById("infile").value 就可以得到路径

火狐和Google只能得到文件名,而且,火狐对click()都屏蔽掉了

1、js弹出文件选择框:

给按钮定义以下javascript函数:

var inputObj=document.createElement(\'input\')
         inputObj.setAttribute(\'id\',\'_ef\');
         inputObj.setAttribute(\'type\',\'file\');
         inputObj.setAttribute("style",\'visibility:hidden\');
         document.body.appendChild(inputObj);
         inputObj.click();
         inputObj.value ;

单击已经添加函数的按钮会弹出选择本地文件的对话框。

2、写一个隐藏域, 当用户选择文件之后把图片的路径赋给这个隐藏域, 然后在action中就可以获取到文件的路径了,代码如下:

function showRealPath(filePath)
      document.getElementsByName("textfield")[0].value = filePath;

<input type="file" name="uploadfile" onfocus="showRealPath(this.value);"/>
<input type="hidden" name="uploadfileRealPath">
参考技术A dw中插入表单。有个文件域的表单就是上传文件的。 参考技术B 和javascript没什么关系吧html里的 <input type="file" /> 就可以弹出文件选择框,然后返回本地文件的完整路径的啊 参考技术C

    jq uploadify

    这个插件可以满足你

参考技术D 抱歉没有遭遇过这种问题,刚刚搜索了一下发现你也在好多地方都问过了我的意见是如果你的项目需要多浏览器支持的话,你可能需要用到类似 Jquery 这种跨浏览器的JS库我想 Jquery 的开发团队一定遇到过这种问题并且已经解决你可以试试看,希望对你有帮助http://www.jquery.com

java 弹出选择目录框(选择文件夹),获取选择的文件夹路径

java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:
int result = 0;
File file = null;
String path = null;
JFileChooser fileChooser = new JFileChooser();
FileSystemView fsv = FileSystemView.getFileSystemView(); //注意了,这里重要的一句
System.out.println(fsv.getHomeDirectory()); //得到桌面路径
fileChooser.setCurrentDirectory(fsv.getHomeDirectory());
fileChooser.setDialogTitle("请选择要上传的文件...");
fileChooser.setApproveButtonText("确定");
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
result = fileChooser.showOpenDialog(chatFrame);
if (JFileChooser.APPROVE_OPTION == result)
path=fileChooser.getSelectedFile().getPath();
System.out.println("path: "+path);


这是另外一种方法得到桌面路径:
File desktop = new File(System.getProperty("user.home")+System.getProperty("file.separator")+"XX");

filechooser.setCurrentDirectory(desktop);

我的文档 路径: fsv.getDefaultDirectory());

user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
参考技术A if(e.getSource()==button1)
JFileChooser fileChooser = new JFileChooser("D:\\");
fileChooser.setFileSelectionMo(JFileChooser.DIRECTORIES_ONLY);
int returnVal = fileChooser.showOpenDialog(fileChooser);
if(returnVal == JFileChooser.APPROVE_OPTION)
filePath= fileChooser.getSelectedFile().getAbsolutePath();//这个就是你选择的文件夹的路径

追问

基本符合,我做的是下载文件夹的操作,有没有解决方法,分数不是问题

追答

这里可以选择一个文件夹下的所有文件
再用File file = new File(filePath); File[] listfile = file.listFiles();和for循环逐个处理文件夹里面的文件。

追问

做的是ftp下载

追答

下载部分你就自己写啊,我也没去写,我给你的就是逐个处理一个目录下的所有文件,具体怎么处理的细节你自己肯定会了!

本回答被提问者和网友采纳
参考技术B 有很多这样的控件,你可以去懒人网找找看 参考技术C 你用的是哪款软件?
JCreator Pro or MyEclipse ?追问

MyEclipse

追答

1.在左边的pack 右键 -- import 或者 file--import

2.点选General下的 Existing Projects into Workspace 然后Next>

3.点Browse...就是选择文件夹了

追问

我是指用java语言编写的程序,实现这样的程序

以上是关于JavaScript如何弹出文件选择框,然后返回文件完整路径的主要内容,如果未能解决你的问题,请参考以下文章

android弹出快捷语输入开发

js点击某个图标或按钮弹出文件选择框

JavaScript基础 window.prompt() 弹出一个输入框 设置提示信息与默认值

java 弹出选择目录框(选择文件夹),获取选择的文件夹路径

Java在客户端不能弹出文件选择框问题

ASP.NET点击提交按钮时弹出一个消息框,但是不想把fileupload控件的路径清空改怎么办?