java怎么实现上传文件到FTP
短信预约 -IT技能 免费直播动态提醒
这篇“java怎么实现上传文件到FTP”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“java怎么实现上传文件到FTP”文章吧。
需求说明:将指定文件上传到FTP,上传成功后修改文件名。
获取文件名及路径(这里是从数据库获取,所以前面的代码就不CV了)
public void testUpdFtpFile(Map<String,Object> map){ FileInputStream inputStream = null; try { //找到要上传的文件 String originfilename = "E:\\work\\files\\"+map.get("FILE_PATH").toString(); //转成流 inputStream = new FileInputStream(originfilename); //上传后的文件名+文件类型 String ftpName = "上传到FTP后的文件名."+map.get("FILE_TYPE"); boolean updFtpFile = FtpClientFile.uploadFile(ftpName,inputStream); if(updFtpFile){ //打印下日志 System.out.println(("=======文件已上传到FTP========")); } } catch (Exception e) { throw new BusinessException("附件上传失败!"); } }
FtpClientFile工具类方法
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply; import com.google.gson.JsonArray; public class FtpClientFile { private static final String hostname = "10.xx.xx.xx" ;//FTP IP private static final int port = 21;//FTP 端口号 private static final String username = "ftpName";//FTP 登录账号 private static final String password = "ftpPsd"; //FTP 登录密码 private static final String pathname = "/";//FTP 工作路径 public static boolean uploadFile(String fileName,FileInputStream inputStream){ boolean flag = false; FTPClient ftpClient = new FTPClient(); //设置超时 ftpClient.setConnectTimeout(60*60*1000); //设置编码 ftpClient.setControlEncoding("UTF-8"); try { //连接FTP服务器 ftpClient.connect(hostname, port); //登录FTP服务器 ftpClient.login(username, password); //是否成功登录FTP服务器 int replyCode = ftpClient.getReplyCode(); if(!FTPReply.isPositiveCompletion(replyCode)){ return flag; } System.out.println("===========登录FTP成功了=========="); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); //切换路径 创建路径 ftpClient.makeDirectory(pathname); ftpClient.changeWorkingDirectory(pathname); ftpClient.enterLocalPassiveMode(); //设置缓冲 ftpClient.setBufferSize(1024 * 1024 * 20); //保持连接 ftpClient.setKeepAlive(true); boolean a = ftpClient.storeFile(new String(fileName.getBytes("utf-8"),"iso-8859-1"), inputStream); if(a){ System.out.println("===========创建文件成功=============="+a); String fileName2 = fileName+"AAA"; boolean status = ftpClient.rename(fileName, fileName2); if(status) System.out.println("===========修改文件名称成功=============="+status); } inputStream.close(); ftpClient.logout(); flag = true; } catch (Exception e) { e.printStackTrace(); } finally{ if(ftpClient.isConnected()){ try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } return flag; } }
上传文件到FTP时 注意:是否有权限登录服务器/上传文件等操作。
默认在浏览器输入自己的ftp地址访问下看看 ftp://10.xx.xx.xx:端口号 登录看看
以上就是关于“java怎么实现上传文件到FTP”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341