- 浏览: 212317 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
listen-raining:
你好。 我是这样写的: JButton b4=new ...
swing 初级学习(四)模式窗口取返回值 -
liu765023051:
灰常感谢~~
同一台机器上配置多个jboss应用服务器实例 -
Mr_Monotony:
为什么我按照这个写了不行啊?。。 只有自己才能看到信息。 而且 ...
Dwr推送技术学习 -
不过是过客:
太厉害了,IE上推送有问题,到处找,看到大哥这个试了一盘,没问 ...
Dwr推送技术学习
//附件是需要的jar包
package com.cbf.util.ftp;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
/**
* org.apache.commons.net.ftp.FTPClient;
* @return FTPClient
* @author ryan
* @since Oct 14, 2009
*
*/
public class FtpOperation {
private String ftpIP = "10.1.0.9";
private String loginName = "jishu";
private String password = "123456";
// String remoteDir = "/cc";
private String ftpPort = "21";
private FTPClient ftp = new FTPClient();
private Map<String, String> map = new HashMap<String, String>();
/**
*
* @param ftpIP FTP服务器ip
* @param ftpPort FTP服务器端口
* @param loginName FTP服务器登录名
* @param password FTP服务器登录密码
*/
public FtpOperation(String ftpIP, String ftpPort, String loginName,
String password) {
this.ftpIP = ftpIP;
this.ftpPort = ftpPort;
this.loginName = loginName;
this.password = password;
getFtpConnection();
}
/**
*
* @return FTPClient
*/
public FTPClient getFtpConnection() {
try {
// connection
ftp.connect(ftpIP, Integer.parseInt(ftpPort));
int reply = ftp.getReplyCode();
if (FTPReply.isPositiveCompletion(reply)) {
// login
if (ftp.login(loginName, password)) {
ftp.setControlEncoding("GBK");
ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
return ftp;
} else {
map.put("msg", "用户名或密码错误");
ftp.logout();
}
} else {
map.put("msg", "ip或端口错误");
ftp.disconnect();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
// TODO Auto-generated catch block
f.printStackTrace();
}
}
}
return null;
}
public void closeFtpConnection() {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
}
}
}
/**
*
* @param localFilePath
* 本地文件的绝对路径
* @param serverFilePath
* 上传到ftp上的相对路径相 相对于ftp默认路径 如:"/aa/bb/cc/11.xml"
* @return String
*/
public boolean uploadFile(String localFilePath, String serverFilePath) {
InputStream input = null;
try {
input = new FileInputStream(localFilePath);
if (input == null) {
map.put("msg", "本地文件不存在");
}
int n = serverFilePath.lastIndexOf("/") + 1;
String[] str = serverFilePath.substring(0, n).split("/");// 取文件夹路径
ftp.setControlEncoding("GBK");
for (int i = 1; i < str.length; i++) {
FTPFile[] files = ftp.listFiles();// 取ftp当前目录下的文件
boolean inMark = true;
for (int j = 1; j < files.length; j++) {
if (files[j].getName().equals(str[i])) {// 判断是否有该文件夹,如果有返回false;
System.out.println(files[j].getName() + "==" + str[i]);
inMark = false;
}
}
if (inMark) {
System.out.println("建包" + str[i]);
ftp.makeDirectory(new String(str[i].getBytes("GBK"),
"iso-8859-1"));
}
System.out.println("进入" + str[i]);
boolean b = ftp.changeWorkingDirectory(new String(str[i]
.getBytes("GBK"), "iso-8859-1"));
}
return ftp.storeFile(serverFilePath.substring(n, serverFilePath
.length()), input);// 上传文件
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
map.put("msg", "本地文件不存在");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
map.put("msg", "异常");
} finally {
try {
input.close();
ftp.logout();
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
/**
* downloadType
*
* @param downloadType
* 为0是下载单个文件;downloadType1时为下载文件夹下的文件
* @param localFilePath
* 下载到本地的绝对路径
* @param serverFilePath
* ftp服务器上的相对路径相;相对于ftp默认路径 如:"aa/aa/bb"
* @return
*/
public boolean downloadFile(int downloadType, String localFilePath,
String serverFilePath) {
boolean reMark = true;
OutputStream outStream = null;
try {
String localFileEncoding = new String(
localFilePath.getBytes("GBK"), "iso-8859-1");
String serverPathEncoding = new String(serverFilePath
.getBytes("GBK"), "iso-8859-1");
if (downloadType == 0) {// 下载单个文件
FTPFile[] files = ftp.listFiles(serverPathEncoding);
if (files.length != 1) {
map.put("msg", "没有" + serverPathEncoding + "这个文件");
return false;
}
outStream = new FileOutputStream(localFileEncoding
+ files[0].getName());
reMark = ftp.retrieveFile(serverPathEncoding, outStream);
} else if (downloadType == 1) {// 下载文件夹下的所有文件,不包含文件夹
String[] s = serverFilePath.split("/");
for (int i = 1; i < s.length; i++) {
ftp.changeWorkingDirectory(s[i]);
}
String[] files2 = ftp.listNames(serverPathEncoding);
if (files2 == null) {
map.put("msg", serverPathEncoding + "没有这个路径下没有文件");
return false;
}
for (int i = 0; i < files2.length; i++) {
File f = new File(localFilePath + "/" + files2[i]);
outStream = new FileOutputStream(f);
String name = new String(files2[i].getBytes("GBK"),
"iso-8859-1");
// 任意文件下载失败则返回失败
if (!ftp.retrieveFile(serverPathEncoding + "/" + name,
outStream)) {
map.put("msg" + i, name + "---下载失败!");
reMark = false;
}
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
map.put("msg", "异常");
reMark = false;
} finally {
try {
outStream.close();
ftp.logout();
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException f) {
reMark = false;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
reMark = false;
}
}
return reMark;
}
/**
* 取某路径下的文件,不包含子文件夹里的文件
* @param path
* ftp服务器上的相对路径相;相对于ftp默认路径 如:"aa/aa/bb"
*/
public ArrayList<String> getFileList(String path) {
ArrayList<String> list = new ArrayList<String>();
try {
String serverPathEncoding = new String(path.getBytes("GBK"),
"iso-8859-1");
//String[] files = ftp.listNames(serverPathEncoding);//文件个数
FTPFile[] files = ftp.listFiles(serverPathEncoding);//所有东西
if (files == null) {
map.put("msg", path+"这个路径下是空的");
} else {
for (FTPFile ss : files) {
//System.out.println(ss.getName());
list.add(ss.getName());
}
}
} catch (Exception e) {
map.put("msg", "异常");
}
return list;
}
public static void main(String args[]) throws Exception {
FtpOperation ftpup = new FtpOperation("10.1.0.9", "21", "jishu",
"123456");
// ftpup.UploadFile("f:/aa.xml", "/的是/dd/56.xml");
// ftpup.getFtpConnection();
// boolean b = ftpup.uploadFile("h:/eeasas说不定.txt",
// "sd/sdsd33.pdf/11.txt");
// boolean b = ftpup.downloadFile(0, "h:/", "的是/eeasas说不定.txt");
// System.out.println(b);
//ftpup.getFileList("的是/dd/");
}
}
- commons-net-2.0.jar (192.7 KB)
- 下载次数: 49
发表评论
-
struts2 跳转类型 result type=chain、dispatcher、redirect(redirect-action)
2013-11-22 11:12 682dispatcher 为默认跳转类型,用于返回一个视图资源(如 ... -
struts2拦截器(Interceptor)与传统拦截器(Filter)
2013-11-22 11:10 2225比较一下 Filter 该过滤器的方法是创建一个类XX ... -
获取mac cpu 主板信息
2013-10-17 11:13 906window 软件加密 -
java rmi
2012-01-12 13:56 828转载:http://www.cnblogs.com/ninah ... -
SNUM 学习一
2011-01-24 11:37 1463SNMP是英文“Simple Network Manageme ... -
工程编码格式转换
2010-12-10 15:28 1072由于GWT(Google Web Toolkit)需要utf- ... -
struts2 格式转换机制
2010-12-10 15:05 963一、概述 在B/S应� ... -
struts2 零配置
2010-09-08 17:27 1035最近开始关注struts2的新特性,从这个版本开始,Strut ... -
struts2-convention-plugin-2.1.6.jar测试零配置
2010-09-08 15:41 1260问题是: 如果web-inf/content/test/use ... -
struts2 零配置
2010-08-27 14:46 1025出处:http://javeye.iteye.co ... -
MyEclipse 性能优化
2010-07-23 16:50 938性能优化 1 、关闭MyEcl ... -
swing 初级学习(五) 拖动
2010-07-01 15:25 902http://www.jgraph.com/jgrap ... -
工程打包 jar
2010-06-29 11:31 9561.建立MANIFEST.MF (在D:\abc目录下) 以下 ... -
swing 初级学习(四)模式窗口取返回值
2010-06-12 14:45 5443javax.swing.JDialog类 a类: ... -
定时器
2010-05-06 11:56 924public static void main(Stri ... -
项目部署(一)
2010-05-05 14:23 954jar包的制作: 1。将存放文件iMsgServer2000 ... -
swing 初级学习(三)日期控件
2010-04-02 16:52 1560import java.awt.*;import java.a ... -
swing 初级学习(二)
2010-03-31 11:26 977分隔符 public static void main ... -
swing 初级学习(一)
2010-03-30 11:46 1076jframe 最大、最小、关� ... -
java 截取屏幕
2010-02-21 14:22 951package com.zzst.application.me ...
相关推荐
FTP上传下载文件
Android 使用 FTP 方式实现文件上传和下载 Android 使用 FTP 方式实现文件上传和下载是移动应用开发中的一项重要功能,特别是在 OTA 在线升级项目中,文件上传和下载是一个关键步骤。下面就 Android 使用 FTP 方式...
5. **FTP文件下载**: 下载文件时,设置`FtpWebRequest`的方法为`WebRequestMethods.Ftp.DownloadFile`。获取响应后,通过`GetResponseStream`读取数据并保存到本地文件。为了显示下载进度,可以使用`Stream`的`...
通过FTP,用户可以将文件从一台计算机(客户端)上传到另一台计算机(服务器),或者从服务器下载文件到客户端。在某些业务场景中,自动化的FTP定时上传和下载文件功能显得尤为重要,例如备份、同步数据或发布更新等...
首先,在前端页面中提供了多种方式供用户选择进行文件下载操作;其次,在后端Java代码中则实现了与FTP服务器的交互,包括登录、文件传输等关键步骤。这种组合方式不仅能够满足基本的功能需求,还能确保操作的安全性...
这个源代码提供了对FTP协议的基本支持,包括连接到FTP服务器、文件上传、文件下载以及可能的目录浏览和管理功能。 FTP是一种标准网络协议,用于在Internet上进行文件传输。它允许用户从远程主机上传或下载文件,是...
6. **文件下载**:使用`retrieveFile()`方法下载文件。这将返回一个OutputStream,你可以将其连接到本地文件或处理数据流。 ```java OutputStream out = new FileOutputStream("C:\\local\\downloaded_file.txt"); ...
7. **文件下载** 下载文件则通过调用`get`或`retrieve`方法实现,指定远程文件路径和本地保存位置。`retrieve`方法会返回一个`InputStreamResource`,可以直接写入文件。 8. **处理目录** `FtpTemplate`也支持...
根据给定的文件信息,我们可以总结出以下关于使用C# WinForm进行FTP上传、下载以及获取文件列表的关键知识点: ### C# WinForm与FTP交互基础知识 在C#中,使用WinForm开发图形用户界面(GUI)应用时,可以通过.NET...
**FTP上传文件:** 要实现FTP文件上传,我们首先创建一个`FtpWebRequest`对象,设置其方法为`WebMethod.UploadFile`,然后提供FTP服务器的URL、用户名和密码。接着,打开一个流写入器,将本地文件内容写入请求的主体...
Java 实现 FTP 批量大文件上传下载 本文介绍了如何使用 Java 实现 FTP 服务器上的大批量文件的上传和下载,处理大文件的上传和下载。通过 Java 现有的可用的库来编写 FTP 客户端代码,并开发成 Applet 控件,做成...
4. **文件下载**:`download(const std::string& remotePath, const std::string& localPath)`方法将服务器上的`remotePath`文件下载到本地的`localPath`。 5. **目录操作**:`changeDirectory(const std::string& ...
- 虽然C#本身不直接支持从FTP服务器读取文件内容,但可以结合上述下载步骤,先将文件下载到本地,然后读取本地文件内容。 例如,以下是一个简单的FTP文件上传示例: ```csharp using System; using System.IO; ...
FTP(File Transfer Protocol)是一种常用的文件传输协议,广泛应用于文件上传、下载和管理。Spring Boot 提供了强大的支持来实现文件上传,下面我们将一步步介绍如何使用 Spring Boot 实现 FTP 方式上传文件到远程...
Spring Boot 中使用 FTP 上传文件到远程服务器的流程 在本文中,我们将介绍如何使用 Spring Boot 实现 FTP 上传文件到远程服务器的流程。这个流程包括如何使用 JWT 登录认证及鉴权的流程,以及如何使用 Spring ...
文件下载是上传的逆过程,我们需要指定远程文件路径,并将其内容保存到本地文件。以下是一个文件下载示例: ```java File downloadFile = new File("/path/to/download/file.txt"); OutputStream outputStream = ...
4. **下载文件**:调用`retrieveFile`方法完成文件下载操作。 #### 四、注意事项 1. **权限问题**:确保登录的FTP账户具有相应的读写权限。 2. **异常处理**:在实际开发中,应更加细致地处理异常情况,比如重试...
FTP上传和下载,可以通过本地和服务器之间建立间接,通过FTP方式进行文件操作等
FTP上传涉及到`storeFile()`方法,而下载则使用`retrieveFile()`。 2. CSV文件解析: CSV(Comma Separated Values)文件是一种常见的数据交换格式,通常用于导入和导出表格数据。Java中,可以使用OpenCSV或者...
5. FTP上传下载示例: - 上传文件: ```java FileInputStream fis = new FileInputStream(localFilePath); ftpClient.storeFile(remoteFilePath, fis); fis.close(); ``` - 下载文件: ```java ...