欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年12月26日 14:10:24   作者:jaycekong  
本文主要對Java FtpClient實(shí)現(xiàn)簡單的圖片上傳到服務(wù)器的方法進(jìn)行介紹,并且展示的小demo中,對配置過程中主要碰到的問題:關(guān)于文件權(quán)限的問題也進(jìn)行了說明,下面跟著小編一起來看下吧

一、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è)問題,默認(rèn)情況下的默認(rèn)權(quán)限是 077 也就是對應(yīng)Linux 中的700 計(jì)算規(guī)則是 linux 的權(quán)限 777 - local_umask

    如果沒有設(shè)置local_umask 文件權(quán)限,會(huì)導(dǎo)致上傳之后的文件,我們無法通過服務(wù)器訪問(缺少權(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 測試連接

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

測試上傳文件:

這里上傳了一個(gè)txt 文件,我們可以看到文件的權(quán)限是666,這里主要就是因?yàn)槲覀冊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 對象遠(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 ;
   }

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

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);

上傳文件完成之后,通過查看返回結(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è)簡單的圖片上傳到服務(wù)器,并且展示的小demo,配置過程中主要碰到的問題是關(guān)于文件權(quán)限的問題,如果沒有設(shè)置vsftpd 中的配置文件中l(wèi)ocal_umask,即使我們成功上傳了文件,也無法使用nginx 進(jìn)行瀏覽,設(shè)置write_enable = YES 保證文件能夠上傳。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • mybatis-plus樂觀鎖實(shí)現(xiàn)方式詳解

    mybatis-plus樂觀鎖實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了mybatis-plus樂觀鎖實(shí)現(xiàn)方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • java調(diào)用webService接口的代碼實(shí)現(xiàn)

    java調(diào)用webService接口的代碼實(shí)現(xiàn)

    本文主要介紹了java調(diào)用webService接口的代碼實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Spring Boot 將yyyy-MM-dd格式的文本字符串直接轉(zhuǎn)換為LocalDateTime出現(xiàn)的問題

    Spring Boot 將yyyy-MM-dd格式的文本字符串直接轉(zhuǎn)換為LocalDateTime出現(xiàn)的問題

    這篇文章主要介紹了Spring Boot 將yyyy-MM-dd格式的文本字符串直接轉(zhuǎn)換為LocalDateTime出現(xiàn)的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • idea切換git地址并刷新右下角git分支

    idea切換git地址并刷新右下角git分支

    這篇文章主要介紹了idea切換git地址并刷新右下角git分支,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java多線程事務(wù)管理的實(shí)現(xiàn)

    Java多線程事務(wù)管理的實(shí)現(xiàn)

    本文主要介紹了Java多線程事務(wù)管理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 利用spring-data-redis實(shí)現(xiàn)incr自增的操作

    利用spring-data-redis實(shí)現(xiàn)incr自增的操作

    這篇文章主要介紹了利用spring-data-redis實(shí)現(xiàn)incr自增的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • Java 進(jìn)制轉(zhuǎn)換的方法

    Java 進(jìn)制轉(zhuǎn)換的方法

    這篇文章介紹了Java 進(jìn)制轉(zhuǎn)換的方法,有需要的朋友可以參考一下
    2013-09-09
  • 使用mybatis log plugin插件展示出數(shù)據(jù)庫查詢語句方式

    使用mybatis log plugin插件展示出數(shù)據(jù)庫查詢語句方式

    本文介紹了如何安裝和配置MyBatis日志插件,包括集成log4j、配置log4j.xml文件和在application.properties中添加數(shù)據(jù)庫打印配置,通過這些步驟,可以在調(diào)試時(shí)查看預(yù)編譯的數(shù)據(jù)庫語句和實(shí)際查詢語句
    2024-11-11
  • java中正則表達(dá)式實(shí)例詳解

    java中正則表達(dá)式實(shí)例詳解

    這篇文章主要介紹了java中正則表達(dá)式實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • Spring?Security實(shí)現(xiàn)接口放通的方法詳解

    Spring?Security實(shí)現(xiàn)接口放通的方法詳解

    在用Spring?Security項(xiàng)目開發(fā)中,有時(shí)候需要放通某一個(gè)接口時(shí),我們需要在配置中把接口地址配置上,這樣做有時(shí)候顯得麻煩。本文將通過一個(gè)注解的方式快速實(shí)現(xiàn)接口放通,感興趣的可以了解一下
    2022-05-05

最新評論