action中通过javascript获取jsp页面中的文件上传路径
2013-01-15 20:36
471 查看
下面的方法在ie和firefox下验证通过
方法1:通过JS获取文件上传路径
最近在写个小网站,用到了 fileupload 控件来上传文件。因为程序的某些需要,要获取上传文件的本地路径,在 CS 代码中使用的是 fileupload1.PostedFile.FileName ,结果发现得出来的只是文件名,不包含路径,记得以前确实是用这样的方法取得过路径的。于是上网搜索了下,原来是因为高版本的浏览器设定为了安全起见,已经不会显示文件路径。只有想办法用 JS 来获取路径了,测试了一下后发现。单独只是使用 document.getElementById("fileupload1").value ,在 IE6 里可以获取全路径,在 IE7,IE8 及火狐里都是只能获得文件名。
后来在网上找到了解决办法, IE7,IE8 可以用如下代码获取文件路径
程序代码:
// 判断浏览器类型
var isIE = (document.all) ? true : false;
var isIE7 = isIE && (navigator.userAgent.indexOf('MSIE 7.0') != -1);
var isIE8 = isIE && (navigator.userAgent.indexOf('MSIE 8.0') != -1);
var file=document.getElementById("fileupload1");
if(isIE7 || isIE8)
{
file.select();
var path=document.selection.createRange().text;
document.selection.empty();
}
但是在火狐下还是没办法获取文件路径,看到网上有人说用 getAsDataURL() 方法可以获取路径。我测试了一下,用这个方法确实是可以获得路径,但是些路径是被加密过的。于是继续寻找其他方法。。。
火狐下获取上传文件路径的方法,需要先修改设置。在地址栏输入 about:config ,然后修改 signed.applets.codebase_principal_support 的键值,将值修改为 true 。然后再使用如下代码,就可以获得文件路径。
程序代码 程序代码
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert(' 请更改浏览器设置 ');
return;
}
var fname = document.getElementById("fileupload1").value;
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try {
// Back slashes for windows
file.initWithPath( fname.replace(/\//g, "\\\\") );
//我是在linux下开发所以这里要稍微修改一下,改为:
//file.initWithPath(fname.replace(/\//g, "/"));
}
catch(e) {
if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
alert(' 无法加载文件 ');
return;
}
alert(file.path); // 取得文件路径
运行以上代码时,浏览器会弹出警告,选择”是“之后,即可获得路径。
文章出处:DIY部落(http://www.diybl.com/course/4_webprogram/jsp/jsp_js/20091130/183825.html)
文章来源:通过JS获取文件上传路径 (http://hi.baidu.com/xtxycy/item/5c6a9dfd801b8315fe358298)
方法2: http://www.cesclub.com/bw/jishuzhongxin/Webjishu/2011/1129/16284.html(没有测试)
参考:/article/3885836.html
相关文章推荐
- java如何获取jsp页面上传的文件路径 20 前台jsp: <form action="AA.do?method=yktAdd" method="post" > <input type='text'
- jsp页面上传文件到servlet获取到路径中有中文出现乱码
- js在jsp页面或当独的js文件中获取项目路径
- 页面中在上传之前获取上传文件的路径(例子:获取上传图片的路径,获得上传图片的大小:长度和宽度)
- jsp页面使用javascript获取文件的大小
- 通过JS获取文件上传路径
- Struts2 访问Action和Jsp页面出现的路径问题解决方案之 ---- 为jsp、图片、js、css等获取Web工程的绝对路径的方法
- js/jq input file获取本地文件路径 将要上传图片显示到页面
- jsp 简化获取相对路径,Uploader文件上传
- javascript 怎么获取文件上传对话框中的全路径名
- javascript和.net 如何获取文件上传对话框中的全路径名
- 通过阿里云的上传路径获取EXCEL文件进行数据读取
- 通过JS获取文件上传路径
- 在JSP表单提交中怎样在Servlet中处理文件上传并且获取JSP页面传过来的一些参数
- jsp页面中引入文件路径问题的解决方案(使用request获取项目路径)【原创】
- jsp页面通过uploadfile工具上传文件
- JS、JSP不能正确获取上传文件路径问题
- 页面中在上传之前获取上传文件的路径(例子:获取上传图片的路径,获得上传图片的大小:长度和宽度)
- jsp页面通过 request对象直接获取 struts2 Action的变量的值。
- JavaScript 获取上传文件的本地绝对路径