一、安裝 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