jquery/js 得到file的value

兄弟姐妹,请教一下,jquery/js 得到file的value
最新回答
阳光是我啃园的

2024-10-17 11:02:43

技术上无法实现。文件输入框 input[file] 是一种特殊的input,不能被赋值,也不能被javascript取值,只能随表单提交,而且随表单提交也不是这个值,而是file路径所指向的文件本身。

这是浏览器安全原因所限制的,如果可以取值和赋值的话,那么javascript就可以获取你电脑上的存储的文件路径了,这是很危险的。
追问
那有没有替代方案可以实现?只要不刷新页面,什么方法都行
追答
如果你想要得到的是路径地址,也就是图片上的 D:\project**** 的话,没有任何办法。ie和firefox读file的值都是空值,chrome读的是 c:\fakepath\文件名 也就是chrome能读到文件名,但是没法得到路径。

点选文件这个动作(弹出文件管理器选择文件)是浏览器控制的,只有file的input才能触发这个动作,所以没有办法绕过它,但是它又是不能被取值的。你只能用普通的text的input来让用户自己写文件地址。但是同样的,你知道这个文件地址,因为没办法给file input赋值,所以也没办法让用户上传这个文件。。。

总之是无解的。。。Flash和Sliver Light对于文件选取都是和浏览器一样的处理方式,所以没有任何办法得到这个路径的。。
追问
谢谢这位仁兄这么用心回答,我找了个flash上传,挺好用,呵呵。
バ快乐De右岸ヤ

2024-10-17 10:51:25

var file1 = document.getElementById("Viediofile");
x.PlayerFileName = file1.value;
这样你取不到你来找我!我都用过了,赋值给控件!
追问
x.PlayerFileName是什么啊?
别再相怀

2024-10-17 10:52:13

document.getElementById(“input type=file的id”).value
追问
不行的,这样得到的不是真实路径,浏览器处理过的。
追答
浏览器安全原因ie里是可以设置的
忘了我就好

2024-10-17 10:38:08

修改很麻烦
或者换一个吧
这里有一个图片放大镜效果
可以试试