一、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实现上传文件到指定服务器
# 上传文件
# 配置文件
# 文件上传
# 如果没有
# 上传
# 重启
# 传了
# 情况下
# 完成了
# 会有
# 我们可以
# 可以看到
# 问题是
# 一个问题
# 推到
# 创建一个
# 需要注意
# 写好
# 过程中
# 设置成
相关文章:
如何在云主机上快速搭建网站?
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
高防服务器租用如何选择配置与防御等级?
如何在搬瓦工VPS快速搭建网站?
动图在线制作网站有哪些,滑动动图图集怎么做?
潍坊网站制作公司有哪些,潍坊哪家招聘网站好?
在线教育网站制作平台,山西立德教育官网?
免费视频制作网站,更新又快又好的免费电影网站?
微课制作网站有哪些,微课网怎么进?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
如何用PHP快速搭建高效网站?分步指南
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
XML的“混合内容”是什么 怎么用DTD或XSD定义
如何用PHP工具快速搭建高效网站?
家具网站制作软件,家具厂怎么跑业务?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何在服务器上三步完成建站并提升流量?
建站主机如何安装配置?新手必看操作指南
建站之星代理平台如何选择最佳方案?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
建站之星安装失败:服务器环境不兼容?
MySQL查询结果复制到新表的方法(更新、插入)
如何打造高效商业网站?建站目的决定转化率
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何快速搭建高效可靠的建站解决方案?
如何配置支付宝与微信支付功能?
Android自定义listview布局实现上拉加载下拉刷新功能
美食网站链接制作教程视频,哪个教做美食的网站比较专业点?
郑州企业网站制作公司,郑州招聘网站有哪些?
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
建站之星安装后如何自定义网站颜色与字体?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
电商网站制作公司有哪些,1688网是什么意思?
香港服务器租用每月最低只需15元?
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何快速搭建高效香港服务器网站?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
建站之星收费标准详解:套餐费用及年费价格表一览
如何用AWS免费套餐快速搭建高效网站?
定制建站哪家更专业可靠?推荐榜单揭晓
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
专业网站建设制作报价,网页设计制作要考什么证?
javascript基本数据类型及类型检测常用方法小结
建站主机如何选?性能与价格怎样平衡?
宝塔面板创建网站无法访问?如何快速排查修复?
个人网站制作流程图片大全,个人网站如何注销?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
*请认真填写需求信息,我们会在24小时内与您取得联系。