国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Java > 正文

Java FtpClient 實(shí)現(xiàn)文件上傳服務(wù)

2019-11-26 13:22:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

一、Ubuntu 安裝 Vsftpd 服務(wù)

1、安裝    

sudo apt-get install vsftpd

2、添加用戶(uftp)

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

3、設(shè)置用戶密碼

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

4、創(chuàng)建用戶目錄

sudo mkdir /home/uftp

5、設(shè)置用戶密碼

sudo passwd uftp

6、設(shè)置/etc/vsftpd.conf配置文件

sudo vim /etc/vsftpd.conf

    a、修改上傳文件的權(quán)限:

    這里會(huì)有一個(gè)問(wèn)題,默認(rèn)情況下的默認(rèn)權(quán)限是 077 也就是對(duì)應(yīng)Linux 中的700 計(jì)算規(guī)則是 linux 的權(quán)限 777 - local_umask

    如果沒(méi)有設(shè)置local_umask 文件權(quán)限,會(huì)導(dǎo)致上傳之后的文件,我們無(wú)法通過(guò)服務(wù)器訪問(wèn)(缺少權(quán)限)

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

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

    c、設(shè)置上傳文件權(quán)限:

    write_enable = YES

這里如果不設(shè)置成YES 默認(rèn)情況下不允許上傳文件。

7、創(chuàng)建/etc/allowed_users

添加允許任務(wù)加入到文件中,

8、重啟服務(wù)

sudo service vsftpd restart

9、使用XFTP 測(cè)試連接

使用XFtp 創(chuàng)建一個(gè)新的連接,這里需要注意選擇的協(xié)議ftp,端口是21,在填寫好賬號(hào)密碼之后,即可以連接我們的服務(wù)器。

測(cè)試上傳文件:

這里上傳了一個(gè)txt 文件,我們可以看到文件的權(quán)限是666,這里主要就是因?yàn)槲覀冊(cè)O(shè)置了上傳文件之后的權(quán)限 local_umask.

二、Java FtpClient 實(shí)現(xiàn)文件上傳

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、創(chuàng)建FtpClient 對(duì)象遠(yuǎn)程連接服務(wù)器

   FTPClient ftp = new FTPClient();   //鏈接遠(yuǎn)程服務(wù)   ftp.connect("192.168.148.128", 21);

連接結(jié)果可以debug 看到:

3、FtpClient  登錄服務(wù)器

ftp.login("uftp", "**");   //返回登錄結(jié)果狀態(tài)   int reply = ftp.getReplyCode();   if (!FTPReply.isPositiveCompletion(reply)) {    ftp.disconnect();    return ;   }

我們可以通過(guò)判斷replyCode 和replyString 來(lái)查看用戶是否登錄成功!

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

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

5、上傳文件

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

上傳文件完成之后,通過(guò)查看返回結(jié)果判斷時(shí)候上傳成功

6、退出登錄

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

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

三、使用Nginx 查看服務(wù)器圖片

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

總結(jié):到這里我們就完成了一個(gè)簡(jiǎn)單的圖片上傳到服務(wù)器,并且展示的小demo,配置過(guò)程中主要碰到的問(wèn)題是關(guān)于文件權(quán)限的問(wèn)題,如果沒(méi)有設(shè)置vsftpd 中的配置文件中l(wèi)ocal_umask,即使我們成功上傳了文件,也無(wú)法使用nginx 進(jìn)行瀏覽,設(shè)置write_enable = YES 保證文件能夠上傳。

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持武林網(wǎng)!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 凉山| 廊坊市| 泗阳县| 新乐市| 五大连池市| 莱阳市| 洛南县| 梅河口市| 顺义区| 赣榆县| 上思县| 香格里拉县| 兴和县| 绥棱县| 多伦县| 永宁县| 乌鲁木齐县| 盐池县| 丽水市| 营口市| 株洲县| 华安县| 华池县| 枝江市| 开原市| 金川县| 靖远县| 郴州市| 思南县| 北辰区| 绥中县| 阜康市| 凤翔县| 美姑县| 阜宁县| 阳江市| 于田县| 衡水市| 调兵山市| 青州市| 东丰县|