apache vfs 文件上传

Posted 四季常青

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了apache vfs 文件上传相关的知识,希望对你有一定的参考价值。

 1 private static FileSystemManager fsManager = null;
 2     private static final String ftpUri = "ftp://username:[email protected]:port/dir/"; 
 3       
 4       static
 5       {
 6         try
 7         {
 8           FtpFileSystemConfigBuilder builder = FtpFileSystemConfigBuilder.getInstance();
 9           FileSystemOptions options = new FileSystemOptions();
10           //解决中文乱码
11           builder.setControlEncoding(options, "UTF-8");
12           builder.setServerLanguageCode(options, "zh");
13           fsManager = VFS.getManager();
14         }
15         catch (FileSystemException e)
16         {
17           e.printStackTrace();
18         }
19       }
20 
21 @RequestMapping({"/doUpload"})
22       public void doUpload(HttpServletRequest request, HttpServletResponse response, Model model) {
23          try {
24             if ((request instanceof MultipartHttpServletRequest)) {
25                 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
26                  if (multipartRequest.getFiles("uploadFile").size() > 0) {
27                      //得到传入的第一个文件,这里只是为了测试
28                      MultipartFile file = (MultipartFile)multipartRequest.getFiles("uploadFile").get(0);
29                      String fileName = file.getOriginalFilename();
30                      String filePath = ftpUri+fileName;
31                     //解决中文乱码问题
32                     filePath = new String(filePath.getBytes("UTF-8"),"ISO-8859-1");
33                     FileObject fileObject = fsManager.resolveFile(filePath);
34                     //如果文件不存在,则创建文件
35                     if(!fileObject.exists()) {
36                         fileObject.createFile();
37                     }
38                     IOUtils.write(file.getBytes(), fileObject.getContent().getOutputStream());
39                  }
40             }
41         } catch (UnsupportedEncodingException e) {
42             // TODO Auto-generated catch block
43             e.printStackTrace();
44         }catch (FileSystemException e) {
45             // TODO Auto-generated catch block
46             e.printStackTrace();
47         }catch (IOException e) {
48             // TODO Auto-generated catch block
49             e.printStackTrace();
50         }
51     }

 

以上是关于apache vfs 文件上传的主要内容,如果未能解决你的问题,请参考以下文章

Apache VFS 错误。因为它是相对路径,并且没有提供基本 URI

Apache Commons VFS - 无法解析文件

如何使用 JCIFS 和 apache VFS 访问 SMB URL?

Apache commons-vfs2

java Ftp上传创建多层文件的代码片段

VFS - 虚拟文件系统基本操作方法的封装