日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

linux安装vsftpt服务,centos安装vsftp服务.md

發布時間:2023/11/27 生活经验 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux安装vsftpt服务,centos安装vsftp服务.md 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

# 使用nginx和vsftp搭建圖片服務器并使用Java上傳圖片到該圖片服務器

## 安裝vsftp

1、首先,安裝vsftpd

```shell

yum -y install vsftpd

復制代碼

```

2、驗證是否安裝成功

```shell

rpm -qa vsftpd

復制代碼

```

3、查看vsftp相關配置文件

```shell

ll /etc/vsftpd/

復制代碼

```

`vsftpd.conf`文件是主要的配置文件,一些關鍵的配置都在其中

`ftpusers`文件是禁止使用vsftpd的用戶列表文件,記錄不允許訪問FTP服務器的用戶名單

`user_list`這個文件禁止或允許使用vsftpd的用戶列表文件,這個文件中指定的用戶缺省情況(即在`vsftpd.conf`中設置`userlist_deny=YES`)下也不能訪問FTP服務器,在設置了`userlist_deny=NO`時,僅允許`user_list`中指定的用戶訪問FTP服務器

4、先備份一份vsftpd.conf文件

```shell

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd-default.conf

復制代碼

```

5、修改vsftpd.conf配置文件

```shell

vim /etc/vsftpd/vsftpd.conf

復制代碼

```

![image-20201112191932974](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/6292c70bed724e8fa9b2a63153b9a4b1~tplv-k3u1fbpfcp-zoom-1.image)

把`anonymous_enable=YES`改為`NO`,表示不允許匿名訪問

![image-20201112192347055](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/61cc935d6d7643dc997692c72bcf9301~tplv-k3u1fbpfcp-zoom-1.image)

然后把`listen=NO`改為`YES`,`listen_ipv6=YES`改為`NO`

再在該文件的最后添加以下數據:

```shell

#僅允許user_list文件中的用戶訪問FTP服務

userlist_deny=NO

#被動模式端口范圍

pasv_min_port=30000

pasv_max_port=30999

復制代碼

```

6、創建一個用來登錄FTP服務的用戶

```shell

useradd ftpuser

passwd ftpuser

#輸入兩次密碼

復制代碼

```

7、將ftpuser用戶加進user_list文件最后一行

```shell

vim /etc/vsftpd/user_list

復制代碼

```

8、啟動FTP服務

```shell

systemctl start vsftpd

復制代碼

```

**9、服務器開放21端口和30000/30999端口范圍**

10、瀏覽器訪問測試是否成功:

ftp://服務器ip地址/

## Nginx進行配置

打開nginx配置文件

```shell

vim /usr/local/nginx/conf/nginx.conf

復制代碼

```

修改以下內容

![image-20201112200536867](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2d95f94d7dfa486297d6aca27602ba2a~tplv-k3u1fbpfcp-zoom-1.image)

重啟nginx:

```shell

cd /usr/local/nginx/sbin/

./nginx -s reload

復制代碼

```

**服務器開放端口:9999**

## Java實現上傳圖片的功能

1、添加依賴:

```xml

commons-net

commons-net

3.6

復制代碼

```

2、application.properties配置文件添加以下內容:

```properties

#配置文件上傳器

spring.servlet.multipart.max-file-size=100MB

spring.servlet.multipart.max-request-size=100MB

#ftp相關配置

#服務器地址

FTP.ADDRESS=192.168.xx.xxx

#FTP服務端口,默認是21

FTP.PORT=21

#訪問FTP服務的用戶名

FTP.USERNAME=ftpuser

#訪問FTP服務的用戶名對應的密碼

FTP.PASSWORD=ftpuser

#圖片存放在服務器指定的文件夾

FTP.BASEPATH=/home/ftpuser/images

#訪問圖片的基本url,如果端口號為80就不用加端口,192,168.xx.xxx為服務器ip地址

IMAGE.BASE.URL=http://192.168.xx.xxx:9999/images

復制代碼

```

3、FtpUtils:用于上傳文件的工具類

```java

public class FtpUtil {

/**

* Description: 向FTP服務器上傳文件

* @param host FTP服務器ip

* @param port FTP服務器端口

* @param username FTP登錄賬號

* @param password FTP登錄密碼

* @param basePath FTP服務器基礎目錄,/home/ftpuser/images

* @param filename 上傳到FTP服務器上的文件名

* @param input 輸入流

* @return 成功返回true,否則返回false

*/

public static boolean uploadFile(String host, int port, String username, String password, String basePath,

String filename, InputStream input) {

boolean result = false;

FTPClient ftp = new FTPClient();

try {

int reply;

ftp.connect(host, port);// 連接FTP服務器

// 如果采用默認端口,可以使用ftp.connect(host)的方式直接連接FTP服務器

ftp.login(username, password);// 登錄

reply = ftp.getReplyCode();

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect();

return result;

}

//設置為被動模式

ftp.enterLocalPassiveMode();

//設置編碼格式為utf-8

ftp.setControlEncoding("UTF-8");

//設置上傳文件的類型為二進制類型

ftp.setFileType(FTP.BINARY_FILE_TYPE);

//設置存儲圖片的文件夾

ftp.changeWorkingDirectory(basePath);

//上傳文件

if (!ftp.storeFile(filename, input)) {

return result;

}

input.close();

ftp.logout();

result = true;

} catch (IOException e) {

e.printStackTrace();

} finally {

if (ftp.isConnected()) {

try {

ftp.disconnect();

} catch (IOException ioe) {

}

}

}

return result;

}

}

復制代碼

```

4、用于生成隨機圖片名

```java

public class IDUtils {

/**

* 生成隨機圖片名

*/

public static String genImageName() {

//取當前時間的長整形值包含毫秒

long millis = System.currentTimeMillis();

//long millis = System.nanoTime();

//加上三位隨機數

Random random = new Random();

int end3 = random.nextInt(999);

//如果不足三位前面補0

String str = millis + String.format("%03d", end3);

return str;

}

}

復制代碼

```

5、上傳圖片的Controller

```java

/**

* 上傳圖片

*/

@Controller

@RequestMapping("/admin")

public class UploadController {

@Value("${FTP.ADDRESS}")

private String host;

// 端口

@Value("${FTP.PORT}")

private int port;

// ftp用戶名

@Value("${FTP.USERNAME}")

private String userName;

// ftp用戶密碼

@Value("${FTP.PASSWORD}")

private String passWord;

// 文件在服務器端保存的主目錄

@Value("${FTP.BASEPATH}")

private String basePath;

// 訪問圖片時的基礎url

@Value("${IMAGE.BASE.URL}")

private String baseUrl;

/**

* 上傳圖片到服務器

* @param uploadFile

* @return

*/

@PostMapping("/upload/file")

public String pictureUpload(@RequestParam("file") MultipartFile file) {

try {

//1、給上傳的圖片生成新的文件名

//1.1獲取原始文件名

String oldName = file.getOriginalFilename();

//1.2使用IDUtils工具類生成新的文件名,新文件名 = newName + 文件后綴

String newName = IDUtils.genImageName();

newName = newName + oldName.substring(oldName.lastIndexOf("."));

//2、把圖片上傳到圖片服務器

//2.1獲取上傳的io流

InputStream input = file.getInputStream();

//2.2調用FtpUtil工具類進行上傳

boolean result = FtpUtil.uploadFile(host, port, userName, passWord, basePath, newName, input);

if(result) {

//返回給前端圖片訪問路徑

return baseUrl+"/"+newName;

}else {

return "false";

}

} catch (IOException e) {

e.printStackTrace();

return "false";

}

}

}

復制代碼

```

6、測試

```html

Insert title here

復制代碼

```

7、提交圖片后后端會返回一個圖片路徑,復制到地址欄看看是否能訪問

到此,使用java上傳圖片就完成了。

一鍵復制

編輯

Web IDE

原始數據

按行查看

歷史

總結

以上是生活随笔為你收集整理的linux安装vsftpt服务,centos安装vsftp服务.md的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。