JAVA利用FTPClient上传到阿里云centos服务器遇到的各种坑

说明

如果你是在利用java的FTPClient上传文件到linux服务器,出现各种问题导致文件上传失败,请你耐心的看完本篇文章,可能对你排查问题有帮助,本文总结了上传文件到FTP文件可能会遇到的各种坑。
如果遇到和我一样的问题,看完文章没解决的可以留言,解决了也说说明一下自己的原因方便别人排查该类问题,谢谢!!!

背景

楼主最近在和别人搞项目,负责的是将上传的图片资源利用FTPClient上传到Nginx服务器的指定位置,刚开始,根据教程在centos上下载FTP,配置完用户后,能正常上传文件到linux上的各个位置。但是,问题出现了,在没有修改centos和本地java代码的情况下,第二天居然上传不了文件了。
首先先贴上网上的FTPClient工具类代码

public class FTPUtils {

   //ftp服务器地址
   private String hostname;
   //ftp服务器端口号默认为21
   private Integer port;
   //ftp登录账号
   private String username;
   //ftp登录密码
   private String password;

   private FTPClient ftpClient = null;

   /**
    * 初始化ftp服务器
    */
   private void initFtpClient() {
       ftpClient = new FTPClient();
       ftpClient.setControlEncoding("utf-8");
       try {
           ftpClient.connect(hostname, port); //连接ftp服务器
           ftpClient.login(username, password);//登录ftp服务器
           ftpClient.getReplyCode(); //是否成功登录服务器
       } catch (MalformedURLException e) {
           e.printStackTrace();
       } catch (IOException e) {
           e.printStackTrace();
       }
   }

   /**
    * 上传文件
    *
    * @param pathname       ftp服务保存地址
    * @param fileName       上传到ftp的文件名
    * @param originfilename 待上传文件的名称(绝对地址) *
    * @return
    */
   public boolean uploadFile(String pathname, String fileName, String originfilename) {
       boolean flag = false;
       InputStream inputStream = null;
       try {
           inputStream = new FileInputStream(new File(originfilename));
           initFtpClient();
           ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
           if (!existFile(pathname)) {
               createDirecroty(pathname);
           }
           ftpClient.changeWorkingDirectory(pathname);
           flag = ftpClient.storeFile(fileName, inputStream);
       } catch (Exception e) {
           e.printStackTrace();
       } finally {
           try {
               ftpClient.logou
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值