자바 는 ftp 프로 토 콜 을 이용 하여 Liux 서버 에 파일 을 업로드 합 니 다.
5627 단어 linux
첫 번 째 단계: 우선 Liux 에 FTP 서버 를 설치 하고 설정 합 니 다. 여 기 는 vsftpd 를 사용 합 니 다.
1. vsftpd 설치
yum install -y vsftpd
2. vsftpd 서 비 스 를 설정 하고 자동 으로 켜 기
systemctl enable vsftpd
3. vsftpd 서비스 시작
systemctl start vsftpd.service
4. 방화벽 에서 21 포트 번 호 를 엽 니 다.
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --permanent --zone=public --add-service=
ftp
firewall-cmd --reload
5. 사용자 추가
useradd: ftpuser (사용자 이름)
passwd: ftpuser (비밀번호)
메모: 사용자 추가 에 성공 하면/home 파일 아래 에 여러 개의/ftuser 파일 이 있 습 니 다./home/ftuser 는 ftpuser 로그 인 후의 기본 경로 입 니 다.
이 사용 자 는 파일 을 업로드 하여/home/ftpuser 디 렉 터 리 에 만 전송 할 수 있 습 니 다.
6. vsftp 프로필 수정, 익명 로그 인 금지
vim/etc/vsftpd/vsftpd.conf
anonymousenable = YES 변경: anonymousenable=NO
Esc---> :wq! 저장 종료
2 부, 자바 로 ftp 프로 토 콜 을 완성 한 파일 업로드
코드 에 서 는 캐 시 크기 설정 과 전송 흐름 수정 을 이용 하여 파일 업로드 속 도 를 높 인 다.
// , InputStream BufferInputStream
BufferedInputStream in=new BufferedInputStream(input);
//
ftp.setBufferSize(1024*1024);
package com.ftp.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
/**
* ftp
* Title: FtpUtil
* Description:
* @author
* @date 2018 7 29 8:11:51
* @version 1.0
*/
public class FtpUtil {
/**
* Description: FTP
* @param host FTP hostname
* @param port FTP
* @param username FTP
* @param password FTP
* @param basePath FTP
* @param filePath FTP 。 :/2015/01/01。 basePath+filePath
* @param filename FTP
* @param input
* @return true, false
*/
public static boolean uploadFile(String host, int port, String username, String password, String basePath,
String filePath, 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;
}
//
if (!ftp.changeWorkingDirectory(basePath+filePath)) {
//
String[] dirs = filePath.split("/");
String tempPath = basePath;
for (String dir : dirs) {
if (null == dir || "".equals(dir)) continue;
tempPath += "/" + dir;
if (!ftp.changeWorkingDirectory(tempPath)) {
if (!ftp.makeDirectory(tempPath)) {
return result;
} else {
ftp.changeWorkingDirectory(tempPath);
}
}
}
}
// , InputStream BufferInputStream
BufferedInputStream in=new BufferedInputStream(input);
//
ftp.setBufferSize(1024*1024);
//
ftp.setFileType(FTP.BINARY_FILE_TYPE);
//
if (!ftp.storeFile(filename, in)) {
return result;
}
in.close();
ftp.logout();
result = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return result;
}
/**
* Description: FTP
* @param host FTP hostname
* @param port FTP
* @param username FTP
* @param password FTP
* @param remotePath FTP
* @param fileName
* @param localPath
* @return
*/
public static boolean downloadFile(String host, int port, String username, String password, String remotePath,
String fileName, String localPath) {
boolean result = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(host, port);
// , ftp.connect(host) FTP
ftp.login(username, password);//
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return result;
}
ftp.changeWorkingDirectory(remotePath);// FTP
FTPFile[] fs = ftp.listFiles();
for (FTPFile ff : fs) {
if (ff.getName().equals(fileName)) {
File localFile = new File(localPath + "/" + ff.getName());
OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(ff.getName(), is);
is.close();
}
}
ftp.logout();
result = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return result;
}
public static void main(String[] args) {
try {
FileInputStream in=new FileInputStream(new File("D:\\temp\\image\\gaigeming.jpg"));
boolean flag = uploadFile("192.168.25.133", 21, "ftpuser", "ftpuser", "/home/ftpuser/www/images","/2018/01/21", "gaigeming.jpg", in);
System.out.println(flag);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.