一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java FtpClient 實現文件上傳服務

Java FtpClient 實現文件上傳服務

2020-07-19 11:59jaycekong Java教程

本文主要對Java FtpClient實現簡單的圖片上傳到服務器的方法進行介紹,并且展示的小demo中,對配置過程中主要碰到的問題:關于文件權限的問題也進行了說明,下面跟著小編一起來看下吧

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

Java FtpClient 實現文件上傳服務

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

sudo vim /etc/vsftpd.conf

    a、修改上傳文件的權限:

Java FtpClient 實現文件上傳服務

    這里會有一個問題,默認情況下的默認權限是 077 也就是對應Linux 中的700 計算規則是 linux 的權限 777 - local_umask

    如果沒有設置local_umask 文件權限,會導致上傳之后的文件,我們無法通過服務器訪問(缺少權限)

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

?
1
2
3
4
5
userlist_deny=NO
userlist_enable=YES
userlist_file=/etc/allowed_users
seccomp_sandbox=NO
local_enable=YES

    c、設置上傳文件權限:

    write_enable = YES

Java FtpClient 實現文件上傳服務

這里如果不設置成YES 默認情況下不允許上傳文件。

7、創建/etc/allowed_users

添加允許任務加入到文件中,

Java FtpClient 實現文件上傳服務

8、重啟服務

sudo service vsftpd restart

Java FtpClient 實現文件上傳服務

9、使用XFTP 測試連接

Java FtpClient 實現文件上傳服務

使用XFtp 創建一個新的連接,這里需要注意選擇的協議ftp,端口是21,在填寫好賬號密碼之后,即可以連接我們的服務器。

Java FtpClient 實現文件上傳服務

測試上傳文件:

這里上傳了一個txt 文件,我們可以看到文件的權限是666,這里主要就是因為我們設置了上傳文件之后的權限 local_umask.

二、Java FtpClient 實現文件上傳

1、Maven 依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- 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 對象遠程連接服務器

?
1
2
3
FTPClient ftp = new FTPClient();
//鏈接遠程服務
ftp.connect("192.168.148.128", 21);

連接結果可以debug 看到:

Java FtpClient 實現文件上傳服務

3、FtpClient  登錄服務器

?
1
2
3
4
5
6
7
ftp.login("uftp", "**");
   //返回登錄結果狀態
   int reply = ftp.getReplyCode();
   if (!FTPReply.isPositiveCompletion(reply)) {
    ftp.disconnect();
    return ;
   }

我們可以通過判斷replyCode 和replyString 來查看用戶是否登錄成功!

Java FtpClient 實現文件上傳服務

4、修改文件上傳路徑和文件類型

?
1
2
3
4
//修改上傳文件路徑
ftp.changeWorkingDirectory("/home/uftp/images/");
//修改文件類型
ftp.setFileType(FTP.BINARY_FILE_TYPE);

5、上傳文件

?
1
2
3
4
//獲取上傳文件的輸入流
 FileInputStream fileInputStream = new FileInputStream(new File("D:/123.jpg"));
//把文件推到服務器上
ftp.storeFile("hello.jpg", fileInputStream);

上傳文件完成之后,通過查看返回結果判斷時候上傳成功

Java FtpClient 實現文件上傳服務

6、退出登錄

?
1
2
//退出登錄
ftp.logout();

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

三、使用Nginx 查看服務器圖片

1、nginx 配置文件

在server 中添加 圖片地址解析

?
1
2
3
4
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

Java FtpClient 實現文件上傳服務

總結:到這里我們就完成了一個簡單的圖片上傳到服務器,并且展示的小demo,配置過程中主要碰到的問題是關于文件權限的問題,如果沒有設置vsftpd 中的配置文件中local_umask,即使我們成功上傳了文件,也無法使用nginx 進行瀏覽,設置write_enable = YES 保證文件能夠上傳。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/jaycekon/p/6221925.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产成人激烈叫床视频 | 国产精品国产三级国产专区不 | 草草视频人人爽 | 小柔的性放荡羞辱日记 | 亚洲AV福利天堂一区二区三 | 美女舒服好紧太爽了视频 | 国产成人咱精品视频免费网站 | 国产精品日韩欧美在线 | 日韩免费在线看 | 亚洲国产精品成人综合久久久 | 草莓视频丝瓜 | 久久伊人影视 | 青青青在线免费 | 久久综合久久伊人 | 国内精品国语自产拍在线观看55 | 欧美日韩人成在线观看 | 亚洲福利区| 爱情岛论坛亚洲品质自拍视频 | 亚洲国产99在线精品一区69堂 | 亚洲 欧美 国产 综合首页 | 亚洲色欲色欲综合网站 | 欧美男男gaysgays | 天天干夜夜拍 | 日韩精品 欧美 | 午夜影院网站 | 精品91自产拍在线观看99re | 精品性影院一区二区三区内射 | 成人免费观看在线视频 | 亚洲 制服 欧美 中文字幕 | 2019午夜福合集高清完整版 | 亚洲视频一 | 99精品国产高清一区二区三区香蕉 | 青青青在线免费 | 欧美高清在线 | 国产精品秒播无毒不卡 | 亚洲精品卡一卡2卡3卡4卡 | 爽好大快深点一视频 | 韩国激情网 | 窝窝午夜精品一区二区 | 国产欧美日韩在线播放 | 日本xxx在线观看免费播放 |