全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java FtpClient 实现文件上传服务

一、Ubuntu 安装 Vsftpd 服务

1、安装    

sudo apt-get install vsftpd

2、添加用户(uftp)

sudo useradd -d /home/uftp -s /bin/bash uftp

3、设置用户密码

sudo useradd -d /home/uftp -s /bin/bash uftp

4、创建用户目录

sudo mkdir /home/uftp

5、设置用户密码

sudo passwd uftp

6、设置/etc/vsftpd.conf配置文件

sudo vim /etc/vsftpd.conf

    a、修改上传文件的权限:

    这里会有一个问题,默认情况下的默认权限是 077 也就是对应Linux 中的700 计算规则是 linux 的权限 777 - local_umask

    如果没有设置local_umask 文件权限,会导致上传之后的文件,我们无法通过服务器访问(缺少权限)

    b、在配置文件末尾添加:

 userlist_deny=NO
 userlist_enable=YES
 userlist_file=/etc/allowed_users
 seccomp_sandbox=NO
 local_enable=YES

    c、设置上传文件权限:

    write_enable = YES

这里如果不设置成YES 默认情况下不允许上传文件。

7、创建/etc/allowed_users

添加允许任务加入到文件中,

8、重启服务

sudo service vsftpd restart

9、使用XFTP 测试连接

使用XFtp 创建一个新的连接,这里需要注意选择的协议ftp,端口是21,在填写好账号密码之后,即可以连接我们的服务器。

测试上传文件:

这里上传了一个txt 文件,我们可以看到文件的权限是666,这里主要就是因为我们设置了上传文件之后的权限 local_umask.

二、Java FtpClient 实现文件上传

1、Maven 依赖

<!-- Apache工具组件 -->
  <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-lang3</artifactId>
  </dependency>
  <dependency>
   <groupId>org.apache.commons</groupId>
   <artifactId>commons-io</artifactId>
  </dependency>
  <dependency>
   <groupId>commons-net</groupId>
   <artifactId>commons-net</artifactId>
  </dependency>

2、创建FtpClient 对象远程连接服务器

   FTPClient ftp = new FTPClient();
   //链接远程服务
   ftp.connect("192.168.148.128", 21);

连接结果可以debug 看到:

3、FtpClient  登录服务器

ftp.login("uftp", "**");
   //返回登录结果状态
   int reply = ftp.getReplyCode();
   if (!FTPReply.isPositiveCompletion(reply)) {
    ftp.disconnect();
    return ;
   }

我们可以通过判断replyCode 和replyString 来查看用户是否登录成功!

4、修改文件上传路径和文件类型

//修改上传文件路径
ftp.changeWorkingDirectory("/home/uftp/images/");
//修改文件类型
ftp.setFileType(FTP.BINARY_FILE_TYPE); 

5、上传文件

//获取上传文件的输入流
 FileInputStream fileInputStream = new FileInputStream(new File("D:/123.jpg"));
//把文件推到服务器上
ftp.storeFile("hello.jpg", fileInputStream);

上传文件完成之后,通过查看返回结果判断时候上传成功

6、退出登录

  //退出登录
  ftp.logout();

以上步骤就是使用FtpClient完成了一次文件上传操作。

三、使用Nginx 查看服务器图片

1、nginx 配置文件

在server 中添加 图片地址解析

location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt)${
  root /home/uftp/images;
  expires 7d; 
} 

2、重启Nginx

./nginx -s reload

3、查看图片

http://192.168.148.128/hello.jpg

总结:到这里我们就完成了一个简单的图片上传到服务器,并且展示的小demo,配置过程中主要碰到的问题是关于文件权限的问题,如果没有设置vsftpd 中的配置文件中local_umask,即使我们成功上传了文件,也无法使用nginx 进行浏览,设置write_enable = YES 保证文件能够上传。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# Java  # FtpClient  # 详解JAVA中使用FTPClient工具类上传下载  # Java使用FTPClient类读写FTP  # JAVA中使用FTPClient实现文件上传下载实例代码  # Java FTPClient实现文件上传下载  # Java中FTPClient上传中文目录、中文文件名乱码问题解决方法  # JavaWeb实现文件上传下载功能实例解析  # JAVA技术实现上传下载文件到FTP服务器(完整)  # java web图片上传和文件上传实例  # java web FTPClient实现上传文件到指定服务器  # 上传文件  # 配置文件  # 文件上传  # 如果没有  # 上传  # 重启  # 传了  # 情况下  # 完成了  # 会有  # 我们可以  # 可以看到  # 问题是  # 一个问题  # 推到  # 创建一个  # 需要注意  # 写好  # 过程中  # 设置成 


相关文章: 车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  建站之星代理如何获取技术支持?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  高端云建站费用究竟需要多少预算?  太原网站制作公司有哪些,网约车营运证查询官网?  定制建站方案优化指南:企业官网开发与建站费用解析  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  内网网站制作软件,内网的网站如何发布到外网?  建站主机如何安装配置?新手必看操作指南  网站制作新手教程,新手建设一个网站需要注意些什么?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  网站制作服务平台,有什么网站可以发布本地服务信息?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  建站主机无法访问?如何排查域名与服务器问题  专业公司网站制作公司,用什么语言做企业网站比较好?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  建站主机选哪种环境更利于SEO优化?  如何在Golang中使用replace替换模块_指定本地或远程路径  开心动漫网站制作软件下载,十分开心动画为何停播?  如何高效配置IIS服务器搭建网站?  广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  山东网站制作公司有哪些,山东大源集团官网?  香港服务器租用费用高吗?如何避免常见误区?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  如何快速查询网址的建站时间与历史轨迹?  制作证书网站有哪些,全国城建培训中心证书查询官网?  网站制作难吗安全吗,做一个网站需要多久时间?  黑客如何利用漏洞与弱口令入侵网站服务器?  jQuery 常见小例汇总  制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?  PHP 500报错的快速解决方法  ,网页ppt怎么弄成自己的ppt?  如何用低价快速搭建高质量网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  html制作网站的步骤有哪些,iapp如何添加网页?  全景视频制作网站有哪些,全景图怎么做成网页?  如何破解联通资金短缺导致的基站建设难题?  浅谈Javascript中的Label语句  如何注册花生壳免费域名并搭建个人网站?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何确保FTP站点访问权限与数据传输安全?  建站之星如何快速解决建站难题?  如何用好域名打造高点击率的自主建站?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何在建站之星绑定自定义域名?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  郑州企业网站制作公司,郑州招聘网站有哪些?  杭州银行网站设计制作流程,杭州银行怎么开通认证方式? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。