extjs 怎么获取 inputType: 'file', 的全路径

koftt21 2014-10-20 10:17:50
用的2.0.2不要说版本老,然后直接 inputType: 'file',就是浏览的那个了
items: [{
style: "margin-left: 300px;",
layout: "table",
items: [{
xtype: 'textfield',
inputType: 'file',//文件类型
fieldLabel: '文件名',
name : 'uploadFileFieldPath',
id : 'uploadFileFieldPath',
allowBlank:false,
blankText: '浏览'
如图 获取的都是带C:\fakepath的 实际上是D:\2014年9.csv,网上的那些方法我试了没用,不知道是不是我没弄对! 目前只要能支持ie6以上的系列就行,火狐那些暂时不考虑。 知道可以通过设置IE浏览器安全,但要求不能这样弄 。 后台action有个读取解析.csv文件的方法,所以 前台必须传一个路径过去当参数 HttpServletRequest request = ServletActionContext.getRequest();
String lj=request.getParameter("filePath");
System.out.println("filePath:"+lj);
Test t = new Test();
List list = new ArrayList();
list=t.importCsv(lj);
用隐藏表单先接受然后传过去也不行 , 我是一个change事件 选择文件后就要把这个路径传过去 没有表单提交,隐藏表单传也就没用了,请哪位 帮我想想办法啊 ......
...全文
559 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
koftt21 2014-10-22
  • 打赏
  • 举报
回复
引用 13 楼 showbo 的回复:
把-file去掉得到的实际是显示路径的text对象,不是file对象,你得用开发工具看下file的id规则在2.0下是怎么样的

2.2的ext是在配置的id后多增加-file。
看来2.0.2 和2.1还有这么个区别
koftt21 2014-10-20
  • 打赏
  • 举报
回复
引用 9 楼 showbo 的回复:
你要获取客户端的那个路径也不是不可以,要用到selection对象


id : 'uploadFileFieldPath',

var f=document.getElementById('uploadFileFieldPath-file');//实际的file控件对象,ext已经设置为透明的了,ext2.0版本太老找不到下载的,这个是2.2版本的控件id规则,不知道2.0是不是这样的
f.select();
//only for IE
alert(document.selection.createRange().text)
这个试过,可惜2.0.2不支持还是怎么回事
Go 旅城通票 2014-10-20
  • 打赏
  • 举报
回复
你要获取客户端的那个路径也不是不可以,要用到selection对象 id : 'uploadFileFieldPath',
var f=document.getElementById('uploadFileFieldPath-file');//实际的file控件对象,ext已经设置为透明的了,ext2.0版本太老找不到下载的,这个是2.2版本的控件id规则,不知道2.0是不是这样的
f.select();
//only for IE
alert(document.selection.createRange().text)
koftt21 2014-10-20
  • 打赏
  • 举报
回复
引用 7 楼 liuchao150 的回复:
[quote=引用 6 楼 showbo 的回复:] 一个客户端的路径,你的代码只能读取服务器端的路径,获取客户端的完全没有意义。。 保存文件到服务器自己找java的相关代码来看了
嗯嗯 找找看 反正不管是客户端的 还是服务器, 我在后台那里只要获取,extjs页面点击浏览时选择的那个 (字符串) 拿过来当参数 就行了[/quote]保存在服务器那些里面 不也是要前台先取得dom 然后java获取String lj=request.getParameter("filePath"); 最后保存服务器还是把这个lj保存在服务器, 返回一个path, 获取这个path参数再去传这个path 。 我想问保存在服务器的时候不带C:\fakepath? 从服务器取出来时 没有都是带C:\fakepath 是完整的D:\2014年9.csv?
koftt21 2014-10-20
  • 打赏
  • 举报
回复
引用 6 楼 showbo 的回复:
一个客户端的路径,你的代码只能读取服务器端的路径,获取客户端的完全没有意义。。 保存文件到服务器自己找java的相关代码来看了
嗯嗯 找找看 反正不管是客户端的 还是服务器, 我在后台那里只要获取,extjs页面点击浏览时选择的那个 (字符串) 拿过来当参数 就行了
Go 旅城通票 2014-10-20
  • 打赏
  • 举报
回复
一个客户端的路径,你的代码只能读取服务器端的路径,获取客户端的完全没有意义。。 保存文件到服务器自己找java的相关代码来看了
slwsss 2014-10-20
  • 打赏
  • 举报
回复
引用 4 楼 liuchao150 的回复:
引用 3 楼 slwsss 的回复:
[quote=引用 2 楼 liuchao150 的回复:] [quote=引用 1 楼 slwsss 的回复:] 获取那个路径没什么意义,传到后台直接取保存的路径就行了
对这个功能说 那个路径怎么会没意义?传到后台后不是准确的路径 所以调用解析csv的方法把这个不准确的路径传进去就没用,找不到文件。 前面总是有C:\fakepath 又不显示是哪个盘c d e盘还是什么 , 不然就可以截取了
传到后台保存到硬盘里(路径程序生成),直接取保存路径了[/quote]怎么保存在硬盘里(路径程序生成)?能不能给个类似例子 [/quote]http://www.cnblogs.com/kay/archive/2008/03/17/1110242.html
koftt21 2014-10-20
  • 打赏
  • 举报
回复
引用 3 楼 slwsss 的回复:
引用 2 楼 liuchao150 的回复:
[quote=引用 1 楼 slwsss 的回复:] 获取那个路径没什么意义,传到后台直接取保存的路径就行了
对这个功能说 那个路径怎么会没意义?传到后台后不是准确的路径 所以调用解析csv的方法把这个不准确的路径传进去就没用,找不到文件。 前面总是有C:\fakepath 又不显示是哪个盘c d e盘还是什么 , 不然就可以截取了
传到后台保存到硬盘里(路径程序生成),直接取保存路径了[/quote]怎么保存在硬盘里(路径程序生成)?能不能给个类似例子
slwsss 2014-10-20
  • 打赏
  • 举报
回复
引用 2 楼 liuchao150 的回复:
引用 1 楼 slwsss 的回复:
获取那个路径没什么意义,传到后台直接取保存的路径就行了
对这个功能说 那个路径怎么会没意义?传到后台后不是准确的路径 所以调用解析csv的方法把这个不准确的路径传进去就没用,找不到文件。 前面总是有C:\fakepath 又不显示是哪个盘c d e盘还是什么 , 不然就可以截取了
传到后台保存到硬盘里(路径程序生成),直接取保存路径了
koftt21 2014-10-20
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
获取那个路径没什么意义,传到后台直接取保存的路径就行了
对这个功能说 那个路径怎么会没意义?传到后台后不是准确的路径 所以调用解析csv的方法把这个不准确的路径传进去就没用,找不到文件。 前面总是有C:\fakepath 又不显示是哪个盘c d e盘还是什么 , 不然就可以截取了
slwsss 2014-10-20
  • 打赏
  • 举报
回复
获取那个路径没什么意义,传到后台直接取保存的路径就行了
koftt21 2014-10-20
  • 打赏
  • 举报
回复
引用 13 楼 showbo 的回复:
把-file去掉得到的实际是显示路径的text对象,不是file对象,你得用开发工具看下file的id规则在2.0下是怎么样的 2.2的ext是在配置的id后多增加-file。
好吧反正加上-file就null无法获取 select属性那个。 是说就要个路径当字符串传递参数, 哪有必要去弄到服务器,再去取服务器取 那太那个什么了。
Go 旅城通票 2014-10-20
  • 打赏
  • 举报
回复
把-file去掉得到的实际是显示路径的text对象,不是file对象,你得用开发工具看下file的id规则在2.0下是怎么样的 2.2的ext是在配置的id后多增加-file。
Go 旅城通票 2014-10-20
  • 打赏
  • 举报
回复
引用 11 楼 liuchao150 的回复:
[quote=引用 9 楼 showbo 的回复:] 你要获取客户端的那个路径也不是不可以,要用到selection对象 id : 'uploadFileFieldPath',
var f=document.getElementById('uploadFileFieldPath-file');//实际的file控件对象,ext已经设置为透明的了,ext2.0版本太老找不到下载的,这个是2.2版本的控件id规则,不知道2.0是不是这样的
f.select();
//only for IE
alert(document.selection.createRange().text)
把-file 去点就不为空了 但是ie8以上估计是安全更高 拒绝访问document.selection.createRange().text!!只能是8一下[/quote] 你用chrome的开发工具,右键查看元素看下那个选择文件的图片,实际看到的是file控件透明浮动在选择文件图片上的,我这里没有2.0的ext,只有2.2的,所以具体不知道2.0那个控件的id会生成什么样的 我这里2.2测试ie8-都可以获取到
koftt21 2014-10-20
  • 打赏
  • 举报
回复
引用 9 楼 showbo 的回复:
你要获取客户端的那个路径也不是不可以,要用到selection对象 id : 'uploadFileFieldPath',
var f=document.getElementById('uploadFileFieldPath-file');//实际的file控件对象,ext已经设置为透明的了,ext2.0版本太老找不到下载的,这个是2.2版本的控件id规则,不知道2.0是不是这样的
f.select();
//only for IE
alert(document.selection.createRange().text)
把-file 去点就不为空了 但是ie8以上估计是安全更高 拒绝访问document.selection.createRange().text!!只能是8一下

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧