2013-08-02 99 views
1

我需要获取用户使用浏览按钮需要上传的文件的完整地址。我试过getAbsolutePath,getAbsoluteFile,getCanonicalPath但他们都给了tomcat/bin位置。我需要上传文件的完整路径。获取文件的完整地址

MultipartFile doc_file = studentInfoBean.getUploadedDocument(); 

String fileName = doc_file.getOriginalFilename(); 
String fileExtension = FilenameUtils.getExtension(fileName); 
File file = new File(fileName); 
File path = file.getAbsoluteFile(); 
//String path = path.toString() 

谢谢

+0

你的意思是一用户上传了一个文件到你的Web应用程序,然后在你的服务器上你想从用户的文件系统获得文件的原始完整路径? (例如,如果我上传了一个文件,你想要字符串“C:\ Users \ Michelle \ Documents \ file.txt”?) – Michelle

+0

是的,当用户上传文件比我需要从.xls转换文件/.xlsx复制到.csv。所以我需要地址/路径, – v0ld3m0rt

+1

出于安全原因,您无法直接在客户端的文件系统上修改文件,甚至无法读取完整路径。您需要将上传的文件保存在本地服务器上,进行所需的转换,然后将其发回给用户(如果您将其发回,否则将其存储在需要存储的位置)。 – Michelle

回答

2

您可能需要使用MultipartFile.transferTo(File dest)保存上传的文件在本地。然后,您可以做您的转换,以及任何你需要用.csv文件(存储在某个地方,将其发送回客户端等),所以该完整的代码可能会做的事:

MultipartFile doc_file = studentInfoBean.getUploadedDocument(); 
File temp_file = new File(doc_file.getOriginalFilename()); 
doc_file.transferTo(temp_file); 
//convert doc_file to .csv 
//store locally permanently or return to client 
+0

这真是一个很好的窍门,请使用transferTo方法将该文件复制到tomcat服务器,然后对该文件执行任何操作并在完成后将其删除。 – v0ld3m0rt