jquery/js 得到file的value
答案:4 悬赏:60
解决时间 2021-01-27 14:28
- 提问者网友:人生佛魔见
- 2021-01-26 19:34
jquery/js 得到file的value
最佳答案
- 二级知识专家网友:纵马山川剑自提
- 2021-01-26 20:02
技术上无法实现。文件输入框 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上传,挺好用,呵呵。
这是浏览器安全原因所限制的,如果可以取值和赋值的话,那么javascript就可以获取你电脑上的存储的文件路径了,这是很危险的。追答
追问:那有没有替代方案可以实现?只要不刷新页面,什么方法都行
追答:如果你想要得到的是路径地址,也就是图片上的 D:\project**** 的话,没有任何办法。ie和firefox读file的值都是空值,chrome读的是 c:\fakepath\文件名 也就是chrome能读到文件名,但是没法得到路径。
点选文件这个动作(弹出文件管理器选择文件)是浏览器控制的,只有file的input才能触发这个动作,所以没有办法绕过它,但是它又是不能被取值的。你只能用普通的text的input来让用户自己写文件地址。但是同样的,你知道这个文件地址,因为没办法给file input赋值,所以也没办法让用户上传这个文件。。。
总之是无解的。。。Flash和Sliver Light对于文件选取都是和浏览器一样的处理方式,所以没有任何办法得到这个路径的。。
追问:谢谢这位仁兄这么用心回答,我找了个flash上传,挺好用,呵呵。
全部回答
- 1楼网友:酒安江南
- 2021-01-26 22:38
document.getElementById(“input type=file的id”).value
追问:不行的,这样得到的不是真实路径,浏览器处理过的。
追答:浏览器安全原因ie里是可以设置的
追问:不行的,这样得到的不是真实路径,浏览器处理过的。
追答:浏览器安全原因ie里是可以设置的
- 2楼网友:北城痞子
- 2021-01-26 22:12
var file1 = document.getElementById("Viediofile");
x.PlayerFileName = file1.value;
这样你取不到你来找我!我都用过了,赋值给控件!
追问:x.PlayerFileName是什么啊?
x.PlayerFileName = file1.value;
这样你取不到你来找我!我都用过了,赋值给控件!
追问:x.PlayerFileName是什么啊?
- 3楼网友:爱难随人意
- 2021-01-26 21:39
修改很麻烦
或者换一个吧
这里有一个图片放大镜效果
可以试试
或者换一个吧
这里有一个图片放大镜效果
可以试试
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯