使用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编程语言中,文件上传和下载是网络应用中常见的功能,特别是在Web应用程序中。这里,我们将深入探讨如何实现这两个核心操作,以及相关的技术、工具和最佳实践。 首先,文件上传通常涉及到用户通过Web表单将...
这里我们将深入探讨这些功能的实现,并结合标签`java xpdf java实现pdf`来讨论XPDF库在Java中的应用。 1. **PDF上传**: PDF上传通常涉及用户通过Web界面或API接口提交PDF文件。Java中,可以使用Apache Commons ...
利用java图形化界面和网络编程相结合实现的--文件上传。 运行步骤: (1)分别运行工程两个包中的两个.java文件(UploadClient.java和UploadServer.java)分别会弹出“上传客服端”和“上传服务器”两个窗口。 ...
在Java Web开发中,实现图片上传功能是一项常见的需求。这里我们主要探讨如何使用Java JSP技术来实现这一功能,以及如何处理上传后的图片,包括图片的剪裁和显示。首先,我们需要了解JSP(JavaServer Pages)是Java ...
#### 三、实现文件上传功能 文件上传主要是通过`MultipartFile`类型接收前端传递过来的文件,并使用`transferTo()`方法将文件保存到指定的路径。在上述代码中,我们通过`@RequestParam`注解获取前端传递过来的文件...
### Java实现视频网站的视频上传及视频播放功能 #### 一、项目背景与目标 本文档旨在介绍如何使用Java开发一套完整的视频网站解决方案,重点在于视频上传、视频转码、视频关键帧抽图以及视频播放功能。通过这些...
在Java编程环境中,处理PDF(Portable Document Format)文件是一项常见的任务,这通常涉及到文件的上传、下载、在线预览、删除以及修改等操作。以下是对这些功能的详细说明: 1. **PDF上传**: PDF文件的上传主要...
"java利用oss实现下载功能" Java是当前最流行的编程语言之一,而 OSS(Object Storage Service)是阿里云提供的一种对象存储服务,通过使用Java和OSS可以实现下载功能。本文将详细介绍如何使用Java和OSS实现下载...
在Java开发中,实现视频上传是一项常见的任务,尤其在构建Web应用或云存储服务时。这个Demo涵盖了几个关键的技术点,包括文件上传、视频转码和播放。让我们逐一深入探讨这些知识点。 首先,**文件上传**是Web应用...
以上就是关于“java实现图片下载和上传.zip”项目中的核心知识点,包括Spring、SpringMVC、MyBatis、Commons-FileUpload和Commons-IO的使用,以及在实际应用中需要考虑的安全性和性能优化措施。通过这些技术,开发者...
Java 实现上传文件到 OSS(阿里云)的功能示例 Java 实现上传文件到 OSS(阿里云)的功能示例是指通过 Java 语言实现将文件上传到阿里云对象存储服务(OSS)的功能。本示例主要介绍了 Java 实现上传文件到 OSS 的...
总结起来,Java实现图片上传涉及的关键技术有:文件操作(File类)、HTTP请求(Multipart编码)、服务器端文件处理(如Apache Commons FileUpload)、存储策略(文件系统或云存储)以及安全性与性能优化(如文件大小...
以上就是关于“java实现上传和下载”的核心知识点,涵盖了从HTTP请求处理到文件操作、安全控制和性能优化等多个方面。在实际开发中,可以根据具体需求和场景,结合这些知识点进行灵活应用和扩展。在提供的`myupload`...
Java实现FTP批量大文件上传下载 一、Java FTP客户端库的选择 在选择Java FTP客户端库时,需要考虑多个因素,例如性能、安全性、可靠性等。当前有多种FTP客户端库可供选择,例如J-FTP、SimpleFTP、FTPClient等。每...
在Java Web开发中,图片上传是一项常见的功能,用于允许用户上传他们的图片文件到服务器,然后在网站上展示。本教程将深入讲解如何使用Struts2框架和Apache Commons FileUpload库来实现这一功能。 首先,我们需要...
本教程将详细介绍如何利用Java后端与HTML5前端结合,实现一个实用的拖拽上传功能。这个功能允许用户直接通过拖放操作将本地文件上传到服务器,极大地简化了上传流程。 首先,我们需要了解HTML5中的拖放API。这个API...
本项目"java+jsp实现上传下载对话框"就是这样一个实例,它结合了Java后端处理和JSP前端展示,利用了第三方库jspsmart.jar来简化流程。下面我们将详细探讨这个项目的各个组成部分及其相关知识点。 首先,我们要了解...
在Java开发中,文件和图片的上传下载是常见的功能需求,尤其在Web应用中更为重要。本篇文章将详细探讨三种不同的实现方式,分别是使用JSP+Servlet、SmartUpload库以及Apache的FileUpload组件。 首先,我们来看第一...
以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...