Java FtpClient 파일 업로드 서비스 구현

4665 단어 JavaFtpClient
1.Ubuntu 설치 Vsftpd 서비스
1.설치sudo apt-get install vsftpd2.사용자 추가(uftp)sudo useradd -d /home/uftp -s /bin/bash uftp3.사용자 비밀번호 설정sudo useradd -d /home/uftp -s /bin/bash uftp4.사용자 디 렉 터 리 만 들 기sudo mkdir /home/uftp5.사용자 비밀번호 설정sudo passwd uftp 6.설정/etc/vsftpd.conf 설정 파일sudo vim /etc/vsftpd.conf    a.파일 업로드 권한 수정:

    여기 서 문제 가 있 습 니 다.기본 적 인 상황 에서 기본 권한 은 077 입 니 다.즉,Linux 에 대응 하 는 700 계산 규칙 은 Liux 의 권한 777-local 입 니 다.umask
    local 을 설정 하지 않 았 다 면umask 파일 권한 은 업 로드 된 파일 을 가 져 올 수 있 습 니 다.서버 를 통 해 접근 할 수 없습니다(권한 이 없습니다)
    b.설정 파일 끝 에 추가:

 userlist_deny=NO
 userlist_enable=YES
 userlist_file=/etc/allowed_users
 seccomp_sandbox=NO
 local_enable=YES
    c.파일 업로드 권한 설정:
    write_enable = YES
여기에 YES 로 설정 하지 않 으 면 기본적으로 파일 을 업로드 할 수 없습니다.
7,창설/etc/allowedusers
파일 에 허용 작업 추가,

8.서비스 재 개sudo service vsftpd restart
9、XFTP 테스트 연결 사용

XFtp 를 사용 하여 새로운 연결 을 만 듭 니 다.선택 한 프로 토 콜 ftp 에 주의해 야 합 니 다.포트 는 21 입 니 다.계 정 비밀 번 호 를 입력 한 후에 서버 에 연결 할 수 있 습 니 다.

테스트 업로드 파일:
여기에 txt 파일 이 업로드 되 었 습 니 다.파일 의 권한 은 666 입 니 다.여 기 는 파일 을 업로드 한 후의 권한 을 설정 하기 때 문 입 니 다 localumask.
2.자바 FtpClient 파일 업로드 실현
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.FtpClient 대상 원 격 연결 서버 만 들 기

   FTPClient ftp = new FTPClient();
   //      
   ftp.connect("192.168.148.128", 21);
연결 결 과 는 debug 에서 볼 수 있 습 니 다:

3、FtpClient  로그 인 서버

ftp.login("uftp", "**");
   //        
   int reply = ftp.getReplyCode();
   if (!FTPReply.isPositiveCompletion(reply)) {
    ftp.disconnect();
    return ;
   }
저 희 는 reply Code 와 reply String 을 판단 하여 사용자 가 로그 인 에 성 공 했 는 지 확인 할 수 있 습 니 다!

4.파일 업로드 경로 와 파일 형식 수정

//        
ftp.changeWorkingDirectory("/home/uftp/images/");
//      
ftp.setFileType(FTP.BINARY_FILE_TYPE); 
5.파일 업로드

//          
 FileInputStream fileInputStream = new FileInputStream(new File("D:/123.jpg"));
//         
ftp.storeFile("hello.jpg", fileInputStream);
파일 업로드 완료 후 되 돌아 오 는 결 과 를 보고 업로드 성공 을 판단 합 니 다.

6、로그 인 탈퇴

  //    
  ftp.logout();
위의 절 차 는 FtpClient 를 사용 하여 파일 업로드 작업 을 마 쳤 습 니 다.
3.Nginx 로 서버 그림 보기
1.nginx 프로필
server 에 그림 주소 분석 추가

location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt)${
  root /home/uftp/images;
  expires 7d; 
} 
2.Nginx 재 부팅./nginx -s reload3.그림 보기
http://192.168.148.128/hello.jpg

요약:여기에서 우 리 는 간단 한 그림 을 서버 에 업로드 하고 보 여 주 는 작은 demo 를 완 성 했 습 니 다.설정 과정 에서 주로 발생 하 는 문 제 는 파일 권한 에 관 한 문제 입 니 다.vsftpd 의 설정 파일 을 설정 하지 않 았 다 면 localumask,파일 을 성공 적 으로 업로드 하 더 라 도 nginx 를 사용 하여 탐색 할 수 없습니다.write 설정enable=YES 는 파일 을 업로드 할 수 있 도록 보증 합 니 다.
이상 은 본 고의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.또한 저 희 를 많이 지지 해 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기