import java.io.*;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPReply;
public class FtpLoadUtils {
/**
* ftp文件下载
* @param remotePath 文件路径
* @param fileName 文件索引名
* @param fileName2 文件真名
* @param response
* @return
*/
public static boolean ftpDownFile(String remotePath, String fileName,
String fileName2,HttpServletResponse response) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
// ftp.connect("127.0.0.1");
ftp.connect("196.128.1.184");
// 下面三行代码必须要,而且不能改变编码格式
ftp.setControlEncoding("GBK");
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_NT);
conf.setServerLanguageCode("zh");
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login("aa", "123");// 登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录
response.setContentType("APPLICATION/X-msdownload;charset=UTF-8");
response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName2, "utf-8"));
// 将文件保存到输出流outputStream中
OutputStream outputStream=response.getOutputStream();
//System.out.println(new String(fileName.getBytes("GBK"), "ISO-8859-1"));
ftp.retrieveFile(new String(fileName.getBytes("GBK"), "ISO-8859-1"), outputStream);
outputStream.flush();
outputStream.close();
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
/**
* ftp文件上传
* @param srcFile 文件流
* @param imgmc 文件索引名
* @param path 文件存储路径
* @return
*/
public static boolean upload(File srcFile, String imgmc,String path) {
boolean result=false;
FTPClient ftpUploadClient = new FTPClient();
FileInputStream fis = null;
try {
ftpUploadClient.connect("196.128.1.x");
ftpUploadClient.login("aa", "123");// 正式name
ftpUploadClient.makeDirectory(path);
fis = new FileInputStream(srcFile);
ftpUploadClient.setBufferSize(1024);
ftpUploadClient.setFileType(FTPClient.BINARY_FILE_TYPE);
ftpUploadClient.storeFile(path+ imgmc, fis);
fis.close();
ftpUploadClient.logout();
result=true;
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(fis);
if(ftpUploadClient.isConnected()){
try {
ftpUploadClient.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
}
相关推荐
FTP文件上传下载Util类
说明:本程序主要是实现ftp上传功能, 启动前读取配置文件ftp_upload.ini. */ func main() { // 读取配置文件 iniConfig := new(util.Config) iniConfig.InitConfig("./ftp_upload.ini") host := iniConfig.Read...
这些类可能包括了FTP客户端和服务器端的逻辑,如FTP连接、文件上传和下载的实现,以及用户认证和管理的相关代码。 "client"目录可能包含了FTP客户端的相关代码,这些代码负责与FTP服务器建立连接,发送上传或下载...
Java作为多平台支持的编程语言,提供了丰富的库和API来实现FTP文件上传功能。本篇文章将详细探讨如何使用Java实现FTP文件上传,以及相关类的作用。 首先,我们来看标题和描述中的关键词"java实现的ftp文件上传",这...
在Java中,我们可以使用`java.net.Socket`进行低级的FTP连接,但通常我们会选择使用第三方库如Apache Commons Net或JSch等,它们提供了更高级别的API,简化了FTP文件上传、下载和管理任务。FTPUtils可能包含的方法有...
在Java中,我们可以使用`java.net`或`org.apache.commons.net`库来实现FTP文件上传。Apache Commons Net库提供了丰富的FTP功能,包括文件上传、下载、目录管理等,同时它也支持断点续传,对于大文件上传非常实用。 ...
- UploadHelper.cs:这个类很可能提供了文件上传的接口,可能包含初始化FTP连接、设置FTP参数、执行上传、处理错误等功能。 - FtpWeb.cs:可能是基于FtpWebRequest的封装,提供更高级别的FTP操作,如上传、下载、...
在Java编程中,FTP...总结来说,Java中FTP文件上传和下载主要依赖于Apache Commons Net库,而文件的压缩和解压则利用了Java内置的`java.util.zip`包。这些技术在开发需要处理文件传输和数据存储的应用时非常实用。
4. **文件上传与下载**:`upload()`和`download()`方法分别用于文件上传和下载,支持单个文件和批量文件操作。`resumeUpload()`和`resumeDownload()`可实现断点续传。 5. **文件重命名和删除**:`rename()`方法用于...
通过以上步骤,我们可以构建一个完整的FTP文件传输系统,它不仅能上传和下载文件,还能解析CSV内容,对数据进行分析,并在出现问题时提供反馈和记录。这样的系统在数据处理、报告生成、自动化工作流等场景中非常有用...
ftp文件服务器的调用、上传下载方法,If you need you can download
`needToUpdate()`方法应根据实际需求实现,通常会比较本地文件和FTP文件的最后修改时间。最后,确保正确关闭和断开FTP连接。 这个例子只是一个基本的起点,实际应用中可能需要处理更复杂的逻辑,如错误处理、断点续...
4. **文件上传**:将本地文件发送到服务器,可能涉及二进制或文本模式的选择,以及文件重命名。 5. **文件下载**:从服务器下载文件到本地,同样可以指定模式和目标路径。 6. **文件删除**:删除服务器上的文件。 ...
这个"FTP上传下载实例源码"是使用微软的FTP服务器技术,结合Visual Studio 2008开发环境,实现了一个能够执行文件上传和下载功能的工程代码。 在VS2008中,你可以使用C#或VB.NET作为编程语言来实现FTP客户端的功能...
本源码示例着重讲解如何实现FTP文件上传下载的功能,并结合日志配置和使用,以便在程序运行过程中记录操作详情,便于问题排查和系统监控。 1. FTP文件上传下载: - FTP连接:首先需要建立一个FTP连接,这通常涉及...
FTPUtils.java文件很可能是用来封装FTP文件操作的工具类,包括连接FTP服务器、登录、上传、下载和断开连接等方法。在编写这样的工具类时,需要注意处理异常,确保文件传输的正确性和完整性。 CSV文件是一种常见的...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件的上传和下载。在Java编程中,我们可以利用Java的API来实现FTP客户端的功能,进行文件的传输操作。"ftp.rar_ftp javadoc" 提供的是...
首先,我们需要了解Java中用于FTP操作的库,如`commons-net`,它提供了`FTPClient`类,便于我们进行FTP文件传输。在Linux系统中,我们可以使用Java的`java.util.Timer`和`java.util.TimerTask`来设定定时任务。下面...
以上所述就是“读取jdbc上FTP放置文件”这一主题涉及的主要技术点,包括了数据库操作、文件生成、文件打包和FTP文件传输。在实际开发中,我们还需要考虑错误处理、安全性(如使用SSL/TLS加密FTP连接)、资源管理...
通过以上步骤,我们可以构建一个完整的Java FTP文件上传系统,该系统能够定时扫描本地文件,将其上传到多个FTP服务器,并实现备份功能。在实际开发中,还需要根据具体需求调整和完善代码,例如添加配置管理、错误重...