java web项目java后台获取前台js上传文件的路径
发布网友
发布时间:2022-04-30 22:53
我来回答
共4个回答
热心网友
时间:2022-04-25 15:43
如果通过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); } } }
热心网友
时间:2022-04-25 17:01
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进行提交。
----
更新
热心网友
时间:2022-04-25 18:36
现在因为浏览器安全问题,已经禁止了直接通过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>
热心网友
时间:2022-04-25 20:27
如果你alert中能够获得文件的路径的话,说明js是没问题的。问题是你的form和js中好像没有写提交到哪里后台能获得值吗?追问我用
更新
提交到Action
追答你把readFile(this)写到链接中试试吧。