j2ee上传文件 如何获得上传前文件的绝对路径 创建时间 我想获取在本地创建文件的时间 5

文件上传功能是可以了,现在要对文件以它的创建日期在文件夹里排序,可action里取不到上传前的路径,因此无法获取该文件原始的创建时间,目前最根本的问题是获取到上传前的路径... 文件上传功能是可以了,现在要对文件以它的创建日期在文件夹里排序,可action里取不到上传前的路径,因此无法获取该文件原始的创建时间,目前最根本的问题是获取到上传前的路径,希望给点关键性的代码,用actionform \ file.getpath()试了都不行 展开
 我来答
蜀中童生
2017-08-17 · TA获得超过295个赞
知道答主
回答量:119
采纳率:0%
帮助的人:32万
展开全部
<!DOCTYPE html PUBpC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>获取文件绝对路径</title>
<style type="text/css">

</style>
</head>
<body>
<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(obj){
//判断浏览器
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 = obj.value;
}else if(Sys.ie>="7.0"){
//ie7,ie8
obj.select();
file_url = document.selection.createRange().text;
}else if(Sys.firefox){
//fx
//file_url = document.getElementById("file").files[0].getAsDataURL();//获取的路径为FF识别的加密字符串
file_url = readFileFirefox(obj);
}else if(Sys.chrome){
file_url = obj.value;
}
//alert(file_url);
document.getElementById("text").innerHTML="获取文件域完整路径为:"+file_url;
}
</script>
<h1>JS获取文件域完整路径的方法,兼容不同浏览器</h1>
<div id="text" style="color:#f00;"></div>
<input type="file" id="file" onchange="getvl(this)" />

</body>
</html>
chorme 和 ie 都可以获取到 火狐设置一下也可以
zhshu0910
2010-12-29
知道答主
回答量:7
采纳率:0%
帮助的人:0
展开全部
file.getPath();是指用户选择的客户端文件路径,与上传前的路径无关的。你需要取到服务器相对路径。action具体代码如下
UploadForm uploadForm = (UploadForm) form;
FormFile myfile = uploadForm.getMyfile();
byte[] data = myfile.getFileData();
ServletContext application = this.getServlet().getServletContext();
String fileName = myfile.getFileName();
String realPath = application.getRealPath("/temp/");//应用服务器temp的相对路径
FileOutputStream fos = new FileOutputStream(realPath + "/" + fileName);//文件输出流
fos.write(data);//将文件上传至temp目录下
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
山上的阿竹
2010-12-27 · TA获得超过463个赞
知道小有建树答主
回答量:513
采纳率:87%
帮助的人:138万
展开全部
建议使用 flash控件, 可以参考开心001的文件上传。 因为浏览器权限的问题,不是用控件,获得本地创建时间不好办, 获取本地绝对路径在IE6下可以,但是到了IE8也同样有限制,虽然可以通过IE设置放开,但是操作的是用户,总是比较麻烦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
udbvfhp
2011-01-05 · TA获得超过290个赞
知道小有建树答主
回答量:611
采纳率:0%
帮助的人:297万
展开全部
你那是客户端的路径和时间吧。考虑用js获取 路径简单。他上传的时候把file控件里的东西取出来方到别的input里面 hidden的 时间就用js查以下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
uglbm54
2011-01-04 · TA获得超过4583个赞
知道小有建树答主
回答量:1723
采纳率:83%
帮助的人:1094万
展开全部
你的类最终是要和JSP、Servlet部署到tomcat下的
所以建议使用相对路径获得文件
这样子对后来的改动和用户的使用没有限制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式