Atitit.js获取上传文件全路径
1. 默认的value只能获取文件名。。安全原因。。
js是无法获取file 控件的值的,你要获取的话可以通过后台程序语言用json或者xml之类的格式来返回被上传的文件路径。
file是一种特殊的input,不能被赋值,也不能被javascript取值,只能随表单提交,而且随表单提交的也是file路径所指向的文件本身。
这是浏览器安全原因所限制的,如果可以取值和赋值的话,那么javascript就可以随意获取你电脑上的文件了,这是非常危险的
不能获取的。你可以读取里面的内容,以便预览等处理
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
2. Firefox浏览器的读取
使用firefox 主要是firefox的getAsDateURL()或者 方法对路径进行了加密
获取到的是 blob:http://localhost:8080/c43a7b27-6bfc-4a6d-a933-516175198f41
Ff window.URL.createObjectURL也是这样
好像是二进制数据,img可以用。。但是路径没有。。
3. Html5 的file api
雅士自能名字,不能路径
4. 解决方法::使用applet插件
Prj。Vod2
<input name="button4" type="button" id="button4" οnclick="MM_openBrWindow('../com.attilax/filepath.html?callback=set_txtpath','','toolbar=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=300,height=300')" value="插件浏览" />
------------filepath.html
<body>
<script src="web/req.js"></script>
<applet codebase="../classes"
code="aaaCfg.FileFullPathJApplet.class"
ARCHIVE="ant-1.8.2.jar"
name="ftpApp2"
width="320"
height="240">
<!--<param name="p0" value="">
<param name="p1" value="">-->
</applet>
<script>
function callback(file)
{
// alert(file);
var openner_callback=UrlParm.parm('callback');
var meth="window.opener."+openner_callback;
//alert(meth)
var exe= meth+"(file)";
// alert(exe);
eval(exe);
window.close();
}
</script>
5. 参考
Firefox 7.0下getAsDataURL取文件绝对路径的替代方法-VEase.htm
javascript 调用 window.URL.createObjectURL(fileObj) 时老说类型无效,代码如下_百度知道.htm
JS获取上传文件的绝对路径,兼容IE和FF - ydmx_lei的日志 - 网易博客.htm
html5获取文件上传的路径问题-CSDN论坛-CSDN.NET-中国最大的IT技术社区.htm
Atitit.java的浏览器插件技术 Applet japplet attilax总结