上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用js,例如网上可以找到的:
function getPath(obj) { if (obj) { if (windownavigatoruserAgentindexOf("MSIE") >= 1) { objselect(); return documentselectioncreateRange()text; } else if (windownavigatoruserAgentindexOf("Firefox") >= 1) { if (objfiles) { return objfilesitem(0)getAsDataURL(); } return objvalue; } return objvalue; } } 但这样的代码在Ie下还是可行的,但在火狐下不兼容。所以又想通过servlet的第三方工具去做,例如FileUpload,本以为FileItem下的getName()方法能够得到全路径名,但结果仍然只得到文件名,很是杯具!求解决方法!?
引用至于你说的,不明白你的意思关键问题是我要获得这个路径,并且传递到后台!用js会有兼容性问题,如果用FileUpload上传,是否可以获得呢?我是没有得到的!!! 问题补充:zhanjia 写道上传文件一般用input标签,type为file,浏览选择文件后就是文件在本地的绝对路径了
引用至于你说的,不明白你的意思关键的问题是我要获得这个本地路径,并且传到后台!用js可以得到,但存在兼容性问题!?如果用FileUpload呢?我暂时还没有得到!!! 问题补充:zhanjia 写道网上的一些解决方案:
一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义
除非像上面所说的文件上传预览,还有那么点用处
我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。
尊敬的用户,您好!很高兴为您答疑。
默认设置下,处于安全考虑,火狐是无法获取此路径的。
但是通过修改设定,可以变相实现此目的:
第一步:打开“about:config”页面,查找“signedappletscodebase_principal_support”属性,将其值设置为true。
设为TRUE
第二步:在javascript中采用以下代码进行获取:
复制内容到剪贴板
代码:
function getValueFF(id){
var ip = documentgetElementById(id);
if (ipfiles) {
//ffx3 - try to have access to full path
try {
netscapesecurityPrivilegeManagerenablePrivilege( 'UniversalFileRead' )
}
catch (err) {
//need to set signedappletscodebase_principal_support to true
}
};
return ipvalue;
}
但是此方案对于面向大众的网站意义不大。
希望我的回答对您有所帮助,如有疑问,欢迎继续咨询我们。
首先, rich:fileUpload 是通过 fileUploadListener 来实现上传的,它是把上传的直接转换为 UploadedFile ,而这个类中没有路径这个属性,所以直接通过rich:fileUpload 应该是没法用js直接拿到路径的
如果使用js/jquery的上传的方法,可能可以拿到路径,你可以试试
<script src="文件地址" type="text/javascript"></script>
再把你需要用js文件的地方 粘贴这个进入
<script type="text/javascript" src="文件地址"></script>
可以在上传的JS函数setImagePreview()尾部加上
documentgetElementById('此处为元素的ID')stylesrc= "此处为上传的路径";
无法获取本地文件的绝对路径,这里涉及到一个浏览器安全问题。
<input type="file" onchang="javascript:changeFile();" />// 选择文件
function changeFile () {
var e = this;
// 修正IE8下,文件上传异常
var files = efiles;
if (files == undefined) {
return false;
}
// 取得选择文件相关数据信息
var file = files[0], fileName = filename, fileSize = filesize;
// 获取文件后缀名
var fileType = fileNamesubstr(fileNamelastIndexOf(""))toLowerCase();
}
以上就是关于java或js(可用jquery)如何获取上传文件原始路径名全部的内容,包括:java或js(可用jquery)如何获取上传文件原始路径名、js如何获取火狐以及谷歌中<input type="file"/>的本地绝对路径、jsf 中 rich:fileUpload 控件怎样用js获得上传文件的客户端路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)