Rumah > Java > javaTutorial > Bagaimana untuk memuat naik fail ke FTP dalam java

Bagaimana untuk memuat naik fail ke FTP dalam java

PHPz
Lepaskan: 2023-05-13 09:52:05
ke hadapan
2536 orang telah melayarinya

需求说明:将指定文件上传到FTP,上传成功后修改文件名。

获取文件名及路径(这里是从数据库获取,所以前面的代码就不CV了)

/**
     * 测试上传
     * @param map 从数据库获取到的文件信息 (包含文件路径FILE_PATH 文件类型FILE_TYPE等信息)
     */
     public void testUpdFtpFile(Map<String,Object> map){
         /*上传附件到FTP*/
         FileInputStream inputStream = null;
         try {
            //找到要上传的文件 
             String originfilename = "E:\\work\\files\\"+map.get("FILE_PATH").toString();
             //转成流
             inputStream = new FileInputStream(originfilename);
            //上传后的文件名+文件类型                        
            String ftpName = "上传到FTP后的文件名."+map.get("FILE_TYPE");
             boolean updFtpFile = FtpClientFile.uploadFile(ftpName,inputStream);
             if(updFtpFile){
                 //打印下日志
                 System.out.println(("=======文件已上传到FTP========"));
             }
         } catch (Exception e) {
             throw new BusinessException("附件上传失败!");
         }
     }
Salin selepas log masuk

FtpClientFile工具类方法

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
 
import com.google.gson.JsonArray;
 
/**
 * ftp 上传文件
 * FTPClient commons.net 3.0.1版本
 * @author Lenovo
 *
 */
public class FtpClientFile {
    
    private static final String hostname = "10.xx.xx.xx" ;//FTP IP
    
    private static final int port = 21;//FTP 端口号
    
    private static final String username = "ftpName";//FTP 登录账号
   
    private static final String password = "ftpPsd"; //FTP 登录密码
    
    private static final String pathname = "/";//FTP 工作路径
    
    
    /**
     * 上传文件(可供Action/Controller层使用)
     * @param fileName 上传到FTP服务器后的文件名称
     * @param inputStream 输入文件流
     * @return
     */
     public static boolean uploadFile(String fileName,FileInputStream inputStream){
         
     boolean flag = false;
     FTPClient ftpClient = new FTPClient();
     //设置超时
     ftpClient.setConnectTimeout(60*60*1000);
     //设置编码
     ftpClient.setControlEncoding("UTF-8");
     try {
         //连接FTP服务器
         ftpClient.connect(hostname, port);
         //登录FTP服务器
         ftpClient.login(username, password);
         //是否成功登录FTP服务器    
         int replyCode = ftpClient.getReplyCode();
         if(!FTPReply.isPositiveCompletion(replyCode)){
             return flag;
             }
         System.out.println("===========登录FTP成功了==========");
         ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
         //切换路径 创建路径
         ftpClient.makeDirectory(pathname);
         ftpClient.changeWorkingDirectory(pathname);
         ftpClient.enterLocalPassiveMode();
         //设置缓冲
         ftpClient.setBufferSize(1024 * 1024 * 20);
         //保持连接
         ftpClient.setKeepAlive(true);
         boolean a = ftpClient.storeFile(new String(fileName.getBytes("utf-8"),"iso-8859-1"), inputStream);
         if(a){
             System.out.println("===========创建文件成功=============="+a);
                 String fileName2 = fileName+"AAA";
                 boolean status = ftpClient.rename(fileName, fileName2);
                 if(status)
                 System.out.println("===========修改文件名称成功=============="+status);
             }
         inputStream.close();
         ftpClient.logout();
         flag = true;
         } catch (Exception e) {
             e.printStackTrace();
         } finally{
             if(ftpClient.isConnected()){
                 try {
                     ftpClient.disconnect();
                 } catch (IOException e) {
                     e.printStackTrace();
                 }
             }
         }
         return flag;
         
     }
    
     
         
    /* public static void main(String[] args) {
         String originfilename = "C:\\Users\\Lenovo\\Desktop\\xx.txt";
         FileInputStream inputStream;
         try {
            inputStream = new FileInputStream(new File(originfilename));
            boolean a = uploadFile("xx.txt","/104/",inputStream);
            System.out.println("上传文件成功============"+a);
         } catch (FileNotFoundException e) {
            e.printStackTrace();
         }
    }*/
     
     
}
Salin selepas log masuk

上传文件到FTP时 注意:是否有权限登录服务器/上传文件等操作。

默认在浏览器输入自己的ftp地址访问下看看 ftp://10.xx.xx.xx:端口号 登录看看

Bagaimana untuk memuat naik fail ke FTP dalam java

Atas ialah kandungan terperinci Bagaimana untuk memuat naik fail ke FTP dalam java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan