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