`
dtt3401885
  • 浏览: 17873 次
文章分类
社区版块
存档分类
最新评论

java ftp 上传文件

 
阅读更多
package com.detao.dtma.filter;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.net.SocketException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.log4j.Logger;

import com.detao.dtma.utils.Configuration;

public class FtpFile {
	  private static Logger logger = Logger.getLogger(FtpFile.class); 
	  String ftpinfor = Configuration.getProperty("ftp.file.information");
	  String[] ftpin=ftpinfor.split("/");
	  String filetype="picture,files,video,others";
	  String[] dire=filetype.split(",");
	  String picturetype = Configuration.getProperty("ftp.file.picturetype");
	  String filestype = Configuration.getProperty("ftp.file.filestype");
	  String videotype = Configuration.getProperty("ftp.file.videotype");
	/** 
     * 获取FTPClient对象 
     * @param ftpHost FTP主机服务器 
     * @param ftpPassword FTP 登录密码 
     * @param ftpUserName FTP登录用户名 
     * @param ftpPort FTP端口 默认为21 
     * @return 
     */  
    public static FTPClient getFTPClient(String ftpHost, String ftpPassword,  
            String ftpUserName, int ftpPort) {  
        FTPClient ftpClient = null;  
        try {  
            ftpClient = new FTPClient();  
            ftpClient.connect(ftpHost, ftpPort);// 连接FTP服务器  
            ftpClient.login(ftpUserName, ftpPassword);// 登陆FTP服务器  
            if (!FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {  
                logger.info("未连接到FTP,用户名或密码错误。");  
                ftpClient.disconnect();  
            } else {  
                logger.info("FTP连接成功。");  
            }  
        } catch (SocketException e) {  
            e.printStackTrace();  
            logger.info("FTP的IP地址可能错误,请正确配置。");  
        } catch (IOException e) {  
            e.printStackTrace();  
            logger.info("FTP的端口错误,请正确配置。");  
        }  
        return ftpClient;  
    } 
    

    /** 
     * 本地上传文件到FTP服务器 
     *  
     * @param ftpPath 
     *            远程文件路径FTP 
     * @return 
     * @throws IOException 
     */  


    public String upload(String filePath,String filename) {  
        FTPClient ftpClient = null;  
        String dirurl="";
        try {  
        	
            ftpClient = getFTPClient(ftpin[0], ftpin[1],ftpin[2], Integer.parseInt(ftpin[3]));  
            // 设置PassiveMode传输  
            ftpClient.enterLocalPassiveMode();  
            // 设置以二进制流的方式传输  
            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); 
            ftpClient.makeDirectory(ftpin[4]); //新建OA文件夹
            ftpClient.changeWorkingDirectory(ftpin[4]);//路径转移OA文件夹
            String[] filtype=filename.split("\\.");
            System.out.println(filtype.length);
            dirurl+="/"+ftpin[4];
            if(filtype.length>1){
            int ff= filtype.length;
            if(picturetype.contains(filtype[(ff-1)])){
            	 ftpClient.makeDirectory(dire[0]);
            	 ftpClient.changeWorkingDirectory(dire[0]);
            	 dirurl+="/"+dire[0];
            }else if(filestype.contains(filtype[(ff-1)])){
            	 ftpClient.makeDirectory(dire[1]);
            	 ftpClient.changeWorkingDirectory(dire[1]);
            	 dirurl+="/"+dire[1];
            }else if(videotype.contains(filtype[(ff-1)])){
            	 ftpClient.makeDirectory(dire[2]);
            	 ftpClient.changeWorkingDirectory(dire[2]);
            	 dirurl+="/"+dire[2];
            }else{
            	 ftpClient.makeDirectory(dire[3]);
            	 ftpClient.changeWorkingDirectory(dire[3]);
            	 dirurl+="/"+dire[3];
            }
                dirurl+="/"+filename;
                File f = new File(filePath);  
                InputStream in = new FileInputStream(f);  
                ftpClient.storeFile(filename, in);  
                in.close();  
                f.delete();  
             	
            }else{
            	 dirurl="create error";
            }
        } catch (Exception e) {  
            e.printStackTrace();  
            dirurl="create error";
        }finally{  
            try {  
                ftpClient.disconnect();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }
        return dirurl;
    }

  
}

 

分享到:
评论

相关推荐

    java ftp上传文件

    Java FTP 上传文件 Java FTP 上传文件是指通过 Java 语言编写代码将文件上传到 FTP 服务器,解决多文件上传问题。FTP(File Transfer Protocol,文件传输协议)是一种常用的网络协议,用于在网络上传输文件。Java ...

    java实现的ftp文件上传

    - **上传文件**:调用`FTPClient.storeFile()`或`FTPClient.uploadFile()`方法上传文件。 - **断开连接**:最后,记得调用`FTPClient.logout()`和`FTPClient.disconnect()`断开连接并释放资源。 在开发过程中,还...

    javaftp上传文件.txt

    javaftp上传文件.txt javaftp上传文件.txt javaftp上传文件.txt

    Java实现FTP文件上传和下载

    5. **文件上传**:使用`storeFile()`方法上传文件。你需要提供远程文件路径和一个InputStream,这个InputStream通常来自本地文件。 ```java File localFile = new File("C:\\local\\file.txt"); InputStream in = ...

    java FTP上传文件,下载文件

    - `uploadFile(String remoteFilePath, File localFile)`: 上传文件到FTP服务器。 - `downloadFile(String remoteFilePath, File localFile)`: 从FTP服务器下载文件到本地。 - `disconnect()`: 断开与FTP服务器的...

    FTPUpload上传文件 进度条显示进度

    在Java编程环境中,FTP(File Transfer Protocol)上传文件并实现进度条显示是一个常见的需求,尤其在用户界面设计中。下面将详细讲解如何使用Java的Swing库创建一个带有进度条的FTP文件上传功能。 首先,我们需要...

    java ftp上传 下载 文件压缩解压

    这篇博客“java ftp上传 下载 文件压缩解压”很可能是关于如何使用Java实现FTP文件上传、下载以及文件的压缩与解压功能。下面我们将深入探讨这些知识点。 首先,FTP上传和下载是Java中常见的任务,通常通过`java...

    java利用FTPClient实现上传下载文件.doc

    上传文件是指将本地文件上传到 FTP 服务器上。使用 FTPClient 可以轻松实现文件上传。下面是一个上传文件的示例代码: ```java public static boolean uploadFile(String url,int port,String username, String ...

    java上传文件到ftp.txt

    ### Java上传文件到FTP知识点详解 #### 一、概述 在现代软件开发中,文件传输是一项常见的需求。其中,FTP(文件传输协议)是最常用的一种文件传输方式之一。本篇文章将详细阐述如何利用Java编程语言实现本地文件...

    java ftp 上传 IIS 展示,代码+文档

    Java FTP(File Transfer...总的来说,Java FTP上传IIS的实现涉及到Java网络编程、FTP协议、可能的第三方库使用,以及良好的异常管理和资源管理实践。通过合理的工具类设计,可以创建出高效且易于维护的FTP客户端代码。

    java使用FTP上传文件

    java使用FTP上传文件,非常实用 包括创建ftp链接,上传

    Java实现FTP批量大文件上传下载

    上传小于 1M 文件速度要比用 FTP 协议上传文件略快。但对于批量及大文件的传输可能无能为力。后来决定采用 FTP 协议上传文件大于 1M 的文件速度比 HTTP 快。文件越大,上传的速度就比 HTTP 上传的速度快数倍。 二、...

    Java上传文件到FTP服务器,支持断点续传.rar

    java实现ftp断点续传,上传文件到FTP服务器,支持断点续传,同时支持LINUX主机,代码里面包括了比较多的java网络操作类,比如连接FTP的常规类、递归创建远程服务器目录 上传文件到服务器,新上传和断点续传操作,远程...

    java 连接 FTP 文件操作(上传,下载,删除,复制

    本文将详细讨论如何使用Java连接FTP(File Transfer Protocol)服务器,进行文件的上传、下载、删除以及复制等操作。 首先,Java通过`java.net`和`javax.net`包提供了FTP客户端的功能。主要依赖于`java.net....

    Java FTP文件上传下载

    `FtpUtil.java`很可能是一个封装了FTP操作的类,包括连接FTP服务器、登录、设置工作目录、上传文件、下载文件、断开连接等方法。这些方法通过调用Java的`java.net.Socket`类和`commons-net-1.4.1.jar`库中的FTP相关...

    java大文件上传至ftp服务器带进度条显示的

    这个场景中,我们关注的重点是如何在上传过程中显示进度条,并确保该进度条与FTP上传的速度同步,以提供用户友好的交互体验。 在Java中,我们可以使用`java.net`或`org.apache.commons.net`库来实现FTP文件上传。...

    java ftp上传进行文件

    java ftp上传进行文件的读取和上传 上传单个文件的文件流 创建远程服务器目录 删除指定文件 上传单个文件 获取指定ftp目录下文件名

    Java实现FTP批量大文件上传下载.pdf

    Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...

    java实现ftp自动上传文件

    Java 实现 FTP 自动上传文件是一项常见的任务,尤其在自动化部署、数据同步或者日志传输等场景中。本文将深入探讨如何使用Java编程语言来构建一个FTP文件上传系统,同时结合Log4j日志框架和命令行信息的处理。 首先...

    Java FTP 指定下载文件和上传文件到指定的服务器目录

    ### Java FTP 指定下载文件和上传文件到指定的服务器目录 #### 一、概述 在本篇文章中,我们将详细介绍如何使用Java编程语言通过FTP(文件传输协议)实现文件的上传与下载功能,并能够将文件指定上传或下载到特定...

Global site tag (gtag.js) - Google Analytics