日期:2014-05-17  浏览次数:20839 次

使用jsp上传文件,input file,无法获取绝对路径问题
如题,代码如下:
jsp:

<script type="text/javascript">
function check(){

document.getElementById("realpath").value = document.getElementById("path").value;
alert(document.getElementById("realpath").value);
return true;
}

function get(id){
var ip = document.getElementById(id).files[0].getAsDataURL();
alert(ip);
if(ip.files){
try{
document.getElementById("realpath").value = ip.files[0].getAsDataURL();
alert(ip.value);
}catch(err){

}
}
}
</script>
</head>
<body>
<p align="center">
欢迎进入试卷生成系统!
</p>
<form action="./WordHandler" method="post" onsubmit="check();">
<div style="padding-left:60px;padding-top:60px"><label>请选择试题库:</label><input type="file" id="path" name="wordpath" onchange="get('path')">
<input type="hidden"  id="realpath" value="">
<input type="submit" value="生成">
</div>
</form>
</body>
</html>


点击浏览本地文件(使用火狐4.0),假如D:\test.doc,通过js显示的是test.doc,而不能显示D:\test.doc,网上说这是安全隐患问题,所以不显示绝对路径,哪究竟有什么隐患,如果要获取到的话,又该如何做。

------解决方案--------------------
你可以用一个隐藏域来装file里面的路径。然后获取这个隐藏域的值就行了
------解决方案--------------------
js的没写过,如果是用servlet来得到的话就简单了。String path=request.getRealPath("/");
------解决方案--------------------
form必须写上encType="multipart/form-data" 来表明上传文件。

参考资料。
http://blog.csdn.net/ecitnet/archive/2008/01/22/2059397.aspx