`

java 实现上传下载功能

    博客分类:
  • java
 
阅读更多

使用apache 的开源jar 包,实现文件的上传和下载功能:

package com.iss.itreasury.cbeservice.clearfile.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Properties;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPReply;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.iss.itreasury.syscore.utils.PropertyUtils;

/**
 * UPOP 上传对账文件
 * @author jpgao
 *
 */
public class FileUp {
 
 private static final Logger log = LoggerFactory.getLogger(FileUp.class);
 private static final String[] filePath = {"chinaums_config.properties"};

 
 private static Properties upopProperties = null;
 
 public static String getItem(String key){
  
  if(upopProperties == null){
   try {
    upopProperties = PropertyUtils.loadProperties(filePath);
   } catch (IOException e) {
    log.info("加载文件失败");
   }
  }
  
  return upopProperties.getProperty(key);
 }
 
 
 
 //================================================================
 
 
 
 private FTPClient ftpClient = null;

 private String username = "";
 private String password = "";
 private String ip = "";
 private int port = 21;

 /**
  * 文件下载
  * @param ftpPath
  * @param localPath
  * @param fileName
  * @return
  * @throws IOException
  */
 public File download(String ftpPath, String localPath, String fileName) throws IOException {
  File localFile = null;
  localFile = new File(localPath + "/" + fileName);
  OutputStream is = new FileOutputStream(localFile);
  ftpClient.retrieveFile(fileName, is);
  is.close();
  return localFile;
 }
 
 
 /**
  * 文件上传功能
  * @param ftpPath
  * @param localPath
  * @param fileName
  * @return
  * @throws IOException
  */
 public boolean fileUp(String ftpPath, String localPath, String fileName) throws Exception {
  
  boolean flag = false;
  InputStream isStream = null;
  try{
   StringBuilder sbLocalFile = new StringBuilder(50);
   sbLocalFile.append(localPath).append(File.separator).append(fileName);
   
   isStream = new FileInputStream(sbLocalFile.toString());
   
   StringBuilder sbRemoteFile = new StringBuilder(40);
   sbRemoteFile.append(ftpPath).append(File.separator).append(fileName);
   
   flag = ftpClient.storeFile(sbRemoteFile.toString(), isStream);
   if(flag){
    log.info("文件上传成功!");
   }
  }finally{
   if(isStream != null){
    isStream.close();
   }
  }
  
  return flag;
 }
 /**
  * 关闭连接
  */
 public void closeConnect() {
  try {
   if (ftpClient != null) {
    ftpClient.logout();
    ftpClient.disconnect();
    log.info("ftp退出:");
   }
  } catch (Exception e) {
   log.info("ftp退出:退出异常");
  }
 }


 /**
  * 设置传输文件的类型[文本文件或者二进制文件]
  *
  * @param fileType
  *            --BINARY_FILE_TYPE、ASCII_FILE_TYPE
  */
 public void setFileType(int fileType) {
  try {
   ftpClient.setFileType(fileType);
  } catch (Exception e) {
   e.printStackTrace();
  }
 }

 /**
  * 扩展使用
  *
  * @return
  */
 protected FTPClient getFtpClient() {
 // connectServer();
  return ftpClient;
 }


 /**
  * 连接到服务器
  */
 public void connectServer(String userName,String passWord,String ipAddr,int portNum) {
  this.username = userName;
  this.password = passWord;
  this.ip = ipAddr;
  this.port = portNum;
  if (ftpClient == null) {
   int reply;
   try {
    ftpClient = new FTPClient();
    ftpClient.setDefaultPort(port);
    ftpClient.configure(getFtpConfig());
    ftpClient.connect(ip);
    ftpClient.login(username, password);
    ftpClient.setDefaultPort(port);
    log.info(ftpClient.getReplyString());
    reply = ftpClient.getReplyCode();

    if (!FTPReply.isPositiveCompletion(reply)) {
     ftpClient.disconnect();
     log.info("FTP server refused connection.");
    }
   } catch (Exception e) {
    log.error("登录ftp服务器【" + ip + "】失败");
    log.error(e.getMessage());
   }
  }
 }

 

 /**
  * 设置FTP客服端的配置--一般可以不设置
  *
  * @return
  */
 private FTPClientConfig getFtpConfig() {
  FTPClientConfig ftpConfig = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
  ftpConfig.setServerLanguageCode(FTP.DEFAULT_CONTROL_ENCODING);
  return ftpConfig;
 }

 /**
  * 转码[ISO-8859-1 -> GBK] 不同的平台需要不同的转码
  *
  * @param obj
  * @return
  */
 private String iso8859togbk(Object obj) {
  try {
   if (obj == null)
    return "";
   else
    return new String(obj.toString().getBytes("iso-8859-1"), "UTF-8");
  } catch (Exception e) {
   return "";
  }
 }
 
 
 public String upFile(){
  
  return null;
 }

 
 
 
 
 public static void main(String[] args) {
  try {
   long start = System.currentTimeMillis(); 
   FileUp fileUp = new FileUp();
   fileUp.connectServer("test", "test", "10.24.65.159", 21);
   
   fileUp.fileUp("", "e:/", "tsp_kj_20140129");
   fileUp.closeConnect();
   
   
   long end = System.currentTimeMillis();
   
   System.out.println(end - start);
   System.out.println("======================================");
   
   
  } catch (Exception e) {
   e.printStackTrace();
   
   
  }
 }

}

分享到:
评论

相关推荐

    java实现上传下载功能

    以上就是使用Java实现文件上传和下载的基本步骤及注意事项。通过结合源码和适当的工具,你可以构建健壮且易于维护的文件管理功能。在实际项目中,应根据具体需求进行调整和优化,确保系统的稳定性和用户体验。

    java实现 上传和下载

    在Java编程语言中,文件上传和下载是网络应用中常见的功能,特别是在Web应用程序中。这里,我们将深入探讨如何实现这两个核心操作,以及相关的技术、工具和最佳实践。 首先,文件上传通常涉及到用户通过Web表单将...

    java实现pdf上传,下载,在线预览,删除,修改等功能

    这里我们将深入探讨这些功能的实现,并结合标签`java xpdf java实现pdf`来讨论XPDF库在Java中的应用。 1. **PDF上传**: PDF上传通常涉及用户通过Web界面或API接口提交PDF文件。Java中,可以使用Apache Commons ...

    java图形化实现文件上传_javagui上传文件,gui编写上传下载文件功能-Java文档类资源

    利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...

    java实现上传图片功能

    在Java Web开发中,实现图片上传功能是一项常见的需求。这里我们主要探讨如何使用Java JSP技术来实现这一功能,以及如何处理上传后的图片,包括图片的剪裁和显示。首先,我们需要了解JSP(JavaServer Pages)是Java ...

    Java Spring Boot应用程序中实现文件上传和下载功能

    #### 三、实现文件上传功能 文件上传主要是通过`MultipartFile`类型接收前端传递过来的文件,并使用`transferTo()`方法将文件保存到指定的路径。在上述代码中,我们通过`@RequestParam`注解获取前端传递过来的文件...

    Java实现视频网站的视频上传及视频播放功能编程资料

    ### Java实现视频网站的视频上传及视频播放功能 #### 一、项目背景与目标 本文档旨在介绍如何使用Java开发一套完整的视频网站解决方案,重点在于视频上传、视频转码、视频关键帧抽图以及视频播放功能。通过这些...

    java实现pdf上传、下载、在线预览、删除、修改等功能

    在Java编程环境中,处理PDF(Portable Document Format)文件是一项常见的任务,这通常涉及到文件的上传、下载、在线预览、删除以及修改等操作。以下是对这些功能的详细说明: 1. **PDF上传**: PDF文件的上传主要...

    java利用oss实现下载功能

    "java利用oss实现下载功能" Java是当前最流行的编程语言之一,而 OSS(Object Storage Service)是阿里云提供的一种对象存储服务,通过使用Java和OSS可以实现下载功能。本文将详细介绍如何使用Java和OSS实现下载...

    java 实现视频上传

    在Java开发中,实现视频上传是一项常见的任务,尤其在构建Web应用或云存储服务时。这个Demo涵盖了几个关键的技术点,包括文件上传、视频转码和播放。让我们逐一深入探讨这些知识点。 首先,**文件上传**是Web应用...

    java实现图片下载和上传.zip

    以上就是关于“java实现图片下载和上传.zip”项目中的核心知识点,包括Spring、SpringMVC、MyBatis、Commons-FileUpload和Commons-IO的使用,以及在实际应用中需要考虑的安全性和性能优化措施。通过这些技术,开发者...

    java实现上传文件到oss(阿里云)功能示例

    Java 实现上传文件到 OSS(阿里云)的功能示例 Java 实现上传文件到 OSS(阿里云)的功能示例是指通过 Java 语言实现将文件上传到阿里云对象存储服务(OSS)的功能。本示例主要介绍了 Java 实现上传文件到 OSS 的...

    Java实现图片上传

    总结起来,Java实现图片上传涉及的关键技术有:文件操作(File类)、HTTP请求(Multipart编码)、服务器端文件处理(如Apache Commons FileUpload)、存储策略(文件系统或云存储)以及安全性与性能优化(如文件大小...

    java实现上传和下载

    以上就是关于“java实现上传和下载”的核心知识点,涵盖了从HTTP请求处理到文件操作、安全控制和性能优化等多个方面。在实际开发中,可以根据具体需求和场景,结合这些知识点进行灵活应用和扩展。在提供的`myupload`...

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

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

    java实现图片上传并显示

    在Java Web开发中,图片上传是一项常见的功能,用于允许用户上传他们的图片文件到服务器,然后在网站上展示。本教程将深入讲解如何使用Struts2框架和Apache Commons FileUpload库来实现这一功能。 首先,我们需要...

    java实现拖拽上传

    本教程将详细介绍如何利用Java后端与HTML5前端结合,实现一个实用的拖拽上传功能。这个功能允许用户直接通过拖放操作将本地文件上传到服务器,极大地简化了上传流程。 首先,我们需要了解HTML5中的拖放API。这个API...

    java+jsp实现上传下载对话框

    本项目"java+jsp实现上传下载对话框"就是这样一个实例,它结合了Java后端处理和JSP前端展示,利用了第三方库jspsmart.jar来简化流程。下面我们将详细探讨这个项目的各个组成部分及其相关知识点。 首先,我们要了解...

    Java实现文件与图片的上传下载---三种方式

    在Java开发中,文件和图片的上传下载是常见的功能需求,尤其在Web应用中更为重要。本篇文章将详细探讨三种不同的实现方式,分别是使用JSP+Servlet、SmartUpload库以及Apache的FileUpload组件。 首先,我们来看第一...

    Java实现FTP文件上传和下载

    以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...

Global site tag (gtag.js) - Google Analytics