本文目录一览:
- 1、java或js(可用jquery)如何获取上传文件原始路径名?
- 2、javascript 中怎样获取file里的完整路径,如:D:\E\1.jpg
- 3、jsp页面如何用js获取上传文件的真实路径,不通过修改浏览器设置的方式
- 4、js弹出窗口 + 获取上传文件全路径。想点击“导入”可以能弹出这个文本框,回复给具体的代码,给采纳
- 5、js如何获取file控件的完整路径
- 6、怎么用js获取上传文件的完整路径
java或js(可用jquery)如何获取上传文件原始路径名?
上传文件时,我想获取客户端上传文件的原始路径。第一考虑,当然是使用js,例如网上可以找到的: function getPath(obj) { if (obj) { if (window.navigator.userAgent.indexOf("MSIE") = 1) { obj.select(); return document.selection.createRange().text; } else if (window.navigator.userAgent.indexOf("Firefox") = 1) { if (obj.files) { return obj.files.item(0).getAsDataURL(); } return obj.value; } return obj.value; } } 但这样的代码在Ie下还是可行的,但在火狐下不兼容。所以又想通过servlet的第三方工具去做,例如FileUpload,本以为FileItem下的getName()方法能够得到全路径名,但结果仍然只得到文件名,很是杯具!求解决方法!? 引用input type="file" name="file" /至于你说的,不明白你的意思关键问题是我要获得这个路径,并且传递到后台!用js会有兼容性问题,如果用FileUpload上传,是否可以获得呢?我是没有得到的!!! 问题补充:zhanjia 写道上传文件一般用input标签,type为file,浏览选择文件后就是文件在本地的绝对路径了 引用input type="file" name="file" /至于你说的,不明白你的意思关键的问题是我要获得这个本地路径,并且传到后台!用js可以得到,但存在兼容性问题!?如果用FileUpload呢?我暂时还没有得到!!! 问题补充:zhanjia 写道网上的一些解决方案: 一般都是上传以后在数据库中保存上传后的文件路径,本地路径一般没意义 除非像上面所说的文件上传预览,还有那么点用处 我用来做数据接口的,我仅仅是把路径传给另一个系统,然后那个系统就可以从这个路径取文件了。如果先上传一次,再给对方,这样不但影响上传速度,而且会产生大量的垃圾文件。
javascript 中怎样获取file里的完整路径,如:D:\E\1.jpg
像这样的文章很多,随便找了一个你看看
获取文件目录路径的JavaScript代码
很多时候我们都需要在js文件中获取该文件的详细路径,以便根据其他文件与该js的相对位置计算并设置其他一些文件如图片或样式或脚本的目录路径。我们一般都这样做:
假设外部js文件的文件名为:test.js,则在test.js中都这样写:
var js=document.scripts;
var jsPath;
for(var i=0;ijs.length;i++){
if(js[i].src.indexOf("test.js")-1){
jsPath=js[i].src.substring(0,js[i].src.lastIndexOf("/")+1);
}
}
alert(jsPath);
或者为了提高效率,这样写
var js=document.scripts;
var jsPath;
for(var i=js.length;i0;i--){
if(js[i-1].src.indexOf("test.js")-1){
jsPath=js[i-1].src.substring(0,js[i-1].src.lastIndexOf("/")+1);
}
}
alert(jsPath);
这种思路很清晰,根据文件名获取引用的文件的src属性并进行判断截取即可。
但这种办法有以下两个缺点:
1、需要遍历页面的js文件,有时可能效率会比较低。
2、如果页面中出现目录不同的重名的js文件则可能判断错误。
其实我们可以有更简单的办法来准确获取路径,这是在一次js测试突然发现并幡然醒悟的。
var js=document.scripts;
js=js[js.length-1].src.substring(0,js[js.length-1].src.lastIndexOf("/")+1);
alert(js);
直接使用js.length?这会正确吗?
其实仔细想想,由于判断路径的js代码一般都直接放在js文件中而不是函数中,所以当加载该js文件时会立即执行其中的语句,而执行此语句时所获取到的js文件数目正好是js.length-1,因为页面后面的js文件还没有加载,所以该处的js文件获取的数目并不是页面所有的js文件的数目。这样一来,获取路径就无需再遍历了,而且文件判断也无需文件名,判断更加准确(js.length-1永远都是其文件本身)。
获取windows系统临时目录
script
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.GetSpecialFolder(2);
alert(f);
/script
jsp页面如何用js获取上传文件的真实路径,不通过修改浏览器设置的方式
你应该回去找提供你这段代码的网页,看一下getPath函数的参数obj是什么,输入参数有什么要求。
就这段代码看,obj应该是一个对象,并且这个对象有select()方法;而恰好jQuery对象就有select()方法,有可能(仅仅是有可能)你需要将obj包装成jQuery对象后,再作为getPath函数的参数代入试试。
提示:
dom对象转为jQuery对象:有dom元素el,通过$(el)操作就可以转为jQuery对象
js弹出窗口 + 获取上传文件全路径。想点击“导入”可以能弹出这个文本框,回复给具体的代码,给采纳
本文的地址是:
script language=javascript
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))0parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])d.all) x=d.all[n]; for (i=0;!xid.forms.length;i++) x=d.forms[i][n];
for(i=0;!xd.layersid.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x document.getElementById) x=document.getElementById(n); return x;
}
function JM_cc(ob){
var obj=MM_findObj(ob); if (obj) {
obj.select();js=obj.createTextRange();js.execCommand("Copy");}
alert(" 恭喜您!复制成功!\n\n 已经把该页网址复制到系统剪贴板 \n\n 您可以使用(ctrl+v或鼠标右键)粘贴功能 \n\n 通过qq、msn或其他软件发送给您的朋友或记录下来。");
}
document.write('input name="page_url" value="'+window.location.href+'" size="38" input type="button" name="button" style=color:red value="复制本页网址发给好友" onclick=JM_cc("page_url")');
/script
js如何获取file控件的完整路径
代码如下:
script type="text/javascript"
//FX获取文件路径方法
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert('无法访问本地文件,由于浏览器安全设置。为了克服这一点,请按照下列步骤操作:(1)在地址栏输入"about:config";(2) 右键点击并选择 New-Boolean; (3) 输入"signed.applets.codebase_principal_support" (不含引号)作为一个新的首选项的名称;(4) 点击OK并试着重新加载文件');
return;
}
var fileName=fileBrowser.value; //这一步就能得到客户端完整路径。下面的是否判断的太复杂,还有下面得到ie的也很复杂。
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try {
// Back slashes for windows
file.initWithPath( fileName.replace(/\//g, "\\\\") );
}
catch(e) {
if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
alert("File '" + fileName + "' cannot be loaded: relative paths are not allowed. Please provide an absolute path to this file.");
return;
}
if ( file.exists() == false ) {
alert("File '" + fileName + "' not found.");
return;
}
return file.path;
}
//根据不同浏览器获取路径
function getvl(){
//判断浏览器
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
var file_url="";
if(Sys.ie="6.0"){
//ie5.5,ie6.0
file_url = document.getElementById("file").value;
}else if(Sys.ie="7.0"){
//ie7,ie8
var file = document.getElementById("file");
file.select();
file_url = document.selection.createRange().text;
}else if(Sys.firefox){
//fx
//file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
file_url = readFileFirefox(document.getElementById("file"));
}
//alert(file_url);
document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url;
}
/script
h1JS获取文件域完整路径的方法,兼容不同浏览器/h1
div id="text" style="color:#f00;"/div
input type="file" id="file" /
input name="" type="button" value="获取" onClick="getvl();"
怎么用js获取上传文件的完整路径
file是一种特殊的input,不能被赋值,也不能被javascript取值,只能随表单提交,而且随表单提交的也是file路径所指向的文件本身。
这是浏览器安全原因所限制的,如果可以取值和赋值的话,那么javascript就可以随意获取你电脑上的文件了,这是非常危险的