java web项目java后台获取前台js上传文件的路径
<scripttype="text/javascript">functionreadFile(fileBrowser){if(navigator.userAgent.in...
<script type="text/javascript">
function readFile(fileBrowser) {
if (navigator.userAgent.indexOf("MSIE")!=-1)
readFileIE(fileBrowser);
else if (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("Mozilla")!=-1)
readFileFirefox(fileBrowser);
else
alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")");
}
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert('路径错误!');
return;
}
var fileName=fileBrowser.value;
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try {
file.initWithPath( fileName.replace(/\//g, "\\\\") );
}
catch(e) {
if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
return;
}
if ( file.exists() == false ) {
alert("File '" + fileName + "' not found.");
return alert;
}
if(extend=="xls"){
alert(file.path);
} else{
alert(file1.path);
}
function readFileIE(fileBrowser) {
alert(document.getElementById("fileBrowser").value);
}
</script>
<div style="margin:0px auto; text-align:center;">
<form name="form1">
<input type="file" name="fileBrowser" size="50" onchange="readFile(this)" />
</form>
</div>
为什么java后台通过String text2 = file.getPath();无法获取路径 展开
function readFile(fileBrowser) {
if (navigator.userAgent.indexOf("MSIE")!=-1)
readFileIE(fileBrowser);
else if (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("Mozilla")!=-1)
readFileFirefox(fileBrowser);
else
alert("Not IE or Firefox (userAgent=" + navigator.userAgent + ")");
}
function readFileFirefox(fileBrowser) {
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
}
catch (e) {
alert('路径错误!');
return;
}
var fileName=fileBrowser.value;
var file = Components.classes["@mozilla.org/file/local;1"]
.createInstance(Components.interfaces.nsILocalFile);
try {
file.initWithPath( fileName.replace(/\//g, "\\\\") );
}
catch(e) {
if (e.result!=Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
return;
}
if ( file.exists() == false ) {
alert("File '" + fileName + "' not found.");
return alert;
}
if(extend=="xls"){
alert(file.path);
} else{
alert(file1.path);
}
function readFileIE(fileBrowser) {
alert(document.getElementById("fileBrowser").value);
}
</script>
<div style="margin:0px auto; text-align:center;">
<form name="form1">
<input type="file" name="fileBrowser" size="50" onchange="readFile(this)" />
</form>
</div>
为什么java后台通过String text2 = file.getPath();无法获取路径 展开
4个回答
展开全部
如果通过servelet来读取上传文件路径,则代码如下,我已经在项目中用过了:
DiskFileItemFactory difif = new DiskFileItemFactory();
difif.setSizeThreshold(32*1024);difif.setRepository(new File(tmpDir)); //
用以上工厂实例化上传组件ServletFileUpload sfu = new ServletFileUpload(difif);
sfu.setSizeMax(MAX_SIZE);
List fileList = sfu.parseRequest(request);
if ( fileList == null || fileList.size() == 0) { throw new Exception("
导入文件不存在,请检
查");} else { File upLoadFile = null; Iterator fileIterator = fileList.iterator();
//得到所有上传的文
件 while (fileIterator.hasNext()) { FileItem fileItem = (FileItem)fileIterator.next(); //
取得上传文件
名 if (fileItem.getContentType() == null) { } else {
//
此为路
径 String path = fileItem.getName(); String t_ext = path.substring(path.lastIndexOf(".") + 1); //
根据系统时间生成上传后保存的文件
名 String prefix = String.valueOf(System.currentTimeMillis()); //
保存最终的文件完整路径,保存在工程根目录下的Upload目录
下 String u_name = tmpDir + File.separator + prefix + "." + t_ext; //
开始保存文
件 upLoadFile = new File(u_name); fileItem.write(upLoadFile); } } }
展开全部
String fileName = (String) request.getAttribute("fileBrowser");
if (fileName != null && fileName.trim().length() > 0) {
File file = new File(fileName);
file.getPath();
}
在Servlet中,或者Actoin中这样子获取。
页面传递过去的只是一个字符串,需要自己另外做处理。
追问
你好,我用Updates是无法把路径提交到Action中的吧
追答
不能的,你要使用Form表单,并且用submit提交才可以,
还有一种方法就是你使用Ajax进行提交。
----
更新
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
现在因为浏览器安全问题,已经禁止了直接通过input类型为file的路径形式了,现在可以通过流的形式来实现,只需要定义下上传文件类型为“enctype="multipart/form-data”即可:
举例:
<form id='modify1' name="modify1" method="post" enctype="multipart/form-data" action="${ctx}/report/rate_exchange.jsp" >
<table class="table_common" id="table1" cellspacing="1" cellpadding="0">
<tr class='title_tr' >
<td style="white-space: nowrap; text-align: center;" colspan="4">
<input type="file" name="fileName" id="filePath">
<input type="button" style="white-space: nowrap; text-align: center;" class="List_Button2" value="<BOC:I18N name="submit"/>" onclick="submitForm1()" />
<input type="reset" style="white-space: nowrap; text-align: center;" class="List_Button2" value="<BOC:I18N name="reset"/>" onclick='confirm("你确认要取消本次上传吗?")'/>
</td>
</tr>
</table>
</form>
举例:
<form id='modify1' name="modify1" method="post" enctype="multipart/form-data" action="${ctx}/report/rate_exchange.jsp" >
<table class="table_common" id="table1" cellspacing="1" cellpadding="0">
<tr class='title_tr' >
<td style="white-space: nowrap; text-align: center;" colspan="4">
<input type="file" name="fileName" id="filePath">
<input type="button" style="white-space: nowrap; text-align: center;" class="List_Button2" value="<BOC:I18N name="submit"/>" onclick="submitForm1()" />
<input type="reset" style="white-space: nowrap; text-align: center;" class="List_Button2" value="<BOC:I18N name="reset"/>" onclick='confirm("你确认要取消本次上传吗?")'/>
</td>
</tr>
</table>
</form>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-23
展开全部
如果你alert中能够获得文件的路径的话,说明js是没问题的。问题是你的form和js中好像没有写提交到哪里后台能获得值吗?
追问
我用
更新
提交到Action
追答
你把readFile(this)写到链接中试试吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询