前言:
目前小伙伴们对“java上传文件ftp”大致比较关切,朋友们都需要知道一些“java上传文件ftp”的相关资讯。那么小编也在网络上汇集了一些有关“java上传文件ftp””的相关文章,希望姐妹们能喜欢,小伙伴们快快来了解一下吧!1、在pom中添加maven的坐标
<dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version></dependency><dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version></dependency>
2、创建上传的工具类
public static boolean uploadFileFtp(String host, int port, String username, String password, String basePath, String filePath, String filename, InputStream input) { boolean result = false; FTPClient ftp = new FTPClient(); try { int reply; ("UTF-8");//解决上传后文件名中文乱码问题 (host, port);// 连接FTP服务器 // 如果采用默认端口,可以使用的方式直接连接FTP服务器 (username, password);// 登录 reply = ; System.out.println(reply); if (!FTPReply.isPositiveCompletion(reply)) { ; return result; } //切换到上传目录 if (!) { //如果目录不存在创建目录 String[] dirs = filePath.split("/"); String tempPath = basePath; for (String dir : dirs) { if (null == dir || "".equals(dir)) continue; tempPath += "/" + dir; if (!) { if (!) { return result; } else { ; } } } } //设置为被动模式 ; //设置上传文件的类型为二进制类型 ; //上传文件 if (!(filename, input)) { return result; } input.close(); ; result = true; } catch (IOException e) { e.printStackTrace(); } finally { if () { try { ; } catch (IOException ioe) { } } } return result; }
3、参数详解
String host 主机名
Int port 端口
String username 用户名
String password 密码
String basePath 基础路劲
String filePath 文件路劲
String filename 文件名称
InputStream input 文件的输入流
(username, password);// 登录
reply = ; reply =230表示登录成功
如果reply 不等于230 则是用户信息设置的问题
如果在切换目录时报错 则需要修改系统的设置 详情请看我的上一篇你还记得她吗-FTP
有具体的配置处理
4、Java上传代码
@RequestMapping("/uploadToFtp") @ResponseBody public AjaxResult uploadToFtp(HttpServletRequest request, HttpServletResponse response) throws Exception { Map<String, Object> resMap = new HashMap<String, Object>(); // 创建上传路径 String relative = FTP_FILEPATH; MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map<String, MultipartFile> fileMap = multipartRequest.getFileMap(); Iterator<String> it = fileMap.keySet().iterator(); String img=""; int flag=0; if(!fileMap.isEmpty()){ while(it.hasNext()) { String fileName = it.next(); MultipartFile item = fileMap.get(fileName); if (!item.isEmpty()) { flag=flag+1; String uuid = UUID.randomUUID().toString().replaceAll("-", ""); String name = item.getOriginalFilename(); String suffix = name.substring(name.lastIndexOf(".")); String newName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + suffix; InputStream input = item.getInputStream(); boolean uploadFileFtp = FtpUtils.uploadFileFtp(FTP_SERVER, FTP_PORT, FTP_USER, FTP_PASS, FTP_BASEPATH, FTP_FILEPATH, uuid + newName, input); if(uploadFileFtp){ resMap.put(item.getName() + "_relative", relative + "/" + uuid + newName); img=relative + "/" + uuid + newName; }else{ return AjaxResult.error("上传失败!!!"); } }else{ return AjaxResult.error("数据为空!!!"); } } }else{ return AjaxResult.error("数据为空!!!"); } if(flag==1){ return AjaxResult.success("上传成功",img); }else{ return AjaxResult.success("上传成功",resMap); } }
以上为整个上传逻辑的代码 其中有几个注入的字符串在配置文件中编写即可
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。