一、安装 linux
sudo apt-get install vsftpd
二、添加用户(uftp)nginx
sudo useradd -d /home/uftp -s /bin/bash uftp
三、设置用户密码apache
sudo useradd -d /home/uftp -s /bin/bash uftp
四、建立用户目录vim
sudo mkdir /home/uftp
五、设置用户密码bash
sudo passwd uftp
六、设置/etc/vsftpd.conf配置文件服务器
sudo vim /etc/vsftpd.conf
a、修改上传文件的权限:工具
这里会有一个问题,默认状况下的默认权限是 077 也就是对应Linux 中的700 计算规则是 linux 的权限 777 - local_umask测试
若是没有设置local_umask 文件权限,会致使上传以后的文件,咱们没法经过服务器访问(缺乏权限) spa
b、在配置文件末尾添加:debug
userlist_deny=NO userlist_enable=YES userlist_file=/etc/allowed_users seccomp_sandbox=NO local_enable=YES
c、设置上传文件权限:
write_enable = YES
这里若是不设置成YES 默认状况下不容许上传文件。
七、建立/etc/allowed_users
添加容许任务加入到文件中,
八、重启服务
sudo service vsftpd restart
九、使用XFTP 测试链接
使用XFtp 建立一个新的链接,这里须要注意选择的协议ftp,端口是21,在填写好帐号密码以后,便可以链接咱们的服务器。
测试上传文件:
这里上传了一个txt 文件,咱们能够看到文件的权限是666,这里主要就是由于咱们设置了上传文件以后的权限 local_umask.
一、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>
二、建立FtpClient 对象远程链接服务器
FTPClient ftp = new FTPClient(); //连接远程服务 ftp.connect("192.168.148.128", 21);
链接结果能够debug 看到:
三、FtpClient 登陆服务器
ftp.login("uftp", "**"); //返回登陆结果状态 int reply = ftp.getReplyCode(); if (!FTPReply.isPositiveCompletion(reply)) { ftp.disconnect(); return ; }
咱们能够经过判断replyCode 和replyString 来查看用户是否登陆成功!
四、修改文件上传路径和文件类型
//修改上传文件路径 ftp.changeWorkingDirectory("/home/uftp/images/"); //修改文件类型 ftp.setFileType(FTP.BINARY_FILE_TYPE);
五、上传文件
//获取上传文件的输入流 FileInputStream fileInputStream = new FileInputStream(new File("D:/123.jpg")); //把文件推到服务器上 ftp.storeFile("hello.jpg", fileInputStream);
上传文件完成以后,经过查看返回结果判断时候上传成功
六、退出登陆
//退出登陆 ftp.logout();
以上步骤就是使用FtpClient完成了一次文件上传操做。
一、nginx 配置文件
在server 中添加 图片地址解析
location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt)${ root /home/uftp/images; expires 7d; }
二、重启Nginx
./nginx -s reload
三、查看图片
http://192.168.148.128/hello.jpg