java ftp文件上传详解

先我们来看两段简单的代码

将本地文件上传到ftp服务器上,代码如下:

 @test
 public void testuploadfromdisk(){
  try {
   fileinputstream in=new fileinputstream(new file("d:/test.txt"));
   boolean flag = uploadfile("127.0.0.1", 21, "test", "test", "d:/ftp", "test.txt", in);
   system.out.println(flag);
  } catch (filenotfoundexception e) {
   e.printstacktrace();
  }
 }

在ftp服务器上生成一个文件,并将一个字符串写入到该文件中

 

@test
 public void testuploadfromstring(){
  try {
   inputstream input = new bytearrayinputstream("test ftp".getbytes("utf-8"));
   boolean flag = uploadfile("127.0.0.1", 21, "test", "test", "d:/ftp", "test.txt", input);
   system.out.println(flag);
  } catch (unsupportedencodingexception e) {
   e.printstacktrace();
  }
 }

完整实例

import java.io.file;
import it.sauronsoftware.ftp4j.ftpclient;
import it.sauronsoftware.ftp4j.ftpfile;

public class javaftp {
private ftpclient client =null;
public void init(){
try {
client = new ftpclient();
client.connect("192.168.1.248", 21);
client.login("db2inst1", "db2inst1");
} catch (exception e) {
e.printstacktrace();
}
}
public static void main(string[] args) {
try {
javaftp javaftp=new javaftp();
javaftp.init();
javaftp.download("e://test", "/test/");
javaftp.close();
} catch (exception e) {
e.printstacktrace();
}
}
public void download(string localpath,string clientpath){
try {
if(clientpath!=null&&clientpath.length()>=0){
client.changedirectory(clientpath);
}
ftpfile[] list = client.list();

for(int i=0;i<list.length;i++){
ftpfile file = list[i];
system.out.println(file.gettype());
if(file.gettype()==ftpfile.type_directory){
file temp=new file(localpath+file.separator+file.getname());
if(!temp.exists()){
temp.mkdir();
}
download(localpath+file.separator+file.getname(),file.getname());
}
else if(file.gettype()==ftpfile.type_file){
file localfile=new file(localpath+file.separator+file.getname());
client.download(file.getname(), localfile);
}
}
} catch (exception e) {
e.printstacktrace();
}
}
public void close(){
try {
client.disconnect(true);
} catch (exception e) {
e.printstacktrace();
}
}
}

 从ftp服务器下载文件
 

* @version1.0 jul 27, 2008 5:32:36 pm by 崔红保(cuihongbao@d-heaven.com)创建
  * @param url ftp服务器hostname
  * @param port ftp服务器端口
  * @param username ftp登录账号
  * @param password ftp登录密码
  * @param remotepath ftp服务器上的相对路径
  * @param filename 要下载的文件名
  * @param localpath 下载后保存到本地的路径
  * @return
  */
 public static boolean downfile(string url, int port,string username, string password, string remotepath,string filename,string localpath) {
  boolean success = false;
  ftpclient ftp = new ftpclient();
  try {
   int reply;
   ftp.connect(url, port);
   //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接ftp服务器
   ftp.login(username, password);//登录
   reply = ftp.getreplycode();
   if (!ftpreply.ispositivecompletion(reply)) {
    ftp.disconnect();
    return success;
   }
   ftp.changeworkingdirectory(remotepath);//转移到ftp服务器目录
   ftpfile[] fs = ftp.listfiles();
   for(ftpfile ff:fs){
    if(ff.getname().equals(filename)){
     file localfile = new file(localpath+"/"+ff.getname());
     
     outputstream is = new fileoutputstream(localfile);
     ftp.retrievefile(ff.getname(), is);
     is.close();
    }
   }
   
   ftp.logout();
   success = true;
  } catch (ioexception e) {
   e.printstacktrace();
  } finally {
   if (ftp.isconnected()) {
    try {
     ftp.disconnect();
    } catch (ioexception ioe) {
    }
   }
  }
  return success;
 }

时间: 2024-10-24 12:25:20

java ftp文件上传详解的相关文章

Swift HTTP网络操作库Alamofire实现文件上传详解

六,使用Alamofire进行文件上传 1,Alamofire支持如下上传类型: File Data Stream MultipartFormData 2,使用文件流的形式上传文件 let fileURL = NSBundle.mainBundle().URLForResource("hangge", withExtension: "zip")   Alamofire.upload(.POST, "http://www.hangge.com/upload.

struts2中文件上传详解

struts2中文件上传的二个限制,一个是struts.multipart.maxSize,如果不设置,struts2 的核心包下的default.properties文件里有默认的大小设置struts.multipart.maxSize=2097152,即2M. 这是struts2文件上传的第一道关. 第二道关是inteceptor中的maximumSize. 当真实的文件大小能通过第一道关时.针对不同的action中配置的inteceptor,maximumSize才能发挥相应的拦截作用.

PHP文件上传详解

HTML部分:    代码如下 复制代码 <form action="upload.php" method="post" enctype="multipart/form-data"> 上传:<input type="file" name="myfile" /> <input type="submit" name="submit" valu

php 入门级文件上传详解

上传文件我们少不了move_uploaded_file函数本函数检查并确保由 file 指定的文件是合法的上传文件(即通过 php教程 的 http post 上传机制所上传的).如果文件合法,则将其移动为由 newloc 指定的文件. 如果 file 不是合法的上传文件,不会出现任何操作,move_uploaded_file() 将返回 false. 如果 file 是合法的上传文件,但出于某些原因无法移动,不会出现任何操作,move_uploaded_file() 将返回 false,此外还

Multipart/form-data POST文件上传详解

理论 简单的HTTP POST 大家通过HTTP向服务器发送POST请求提交数据,都是通过form表单提交的,代码如下:      <form method="post"action="http://www.111cn.net" >          <inputtype="text" name="txt1">          <inputtype="text" name=&

Android关于FTP文件上传和下载功能详解

本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 此篇博客为整理文章,供大家学习. 1.首先下载commons-net  jar包,可以百度下载. FTP的文件上传和下载的工具类: package ryancheng.example.progressbar; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.Outpu

java实现FTP文件上传与文件下载_java

本文实例为大家分享了两种java实现FTP文件上传下载的方式,供大家参考,具体内容如下 第一种方式: package com.cloudpower.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import sun.net.TelnetInputStream; import sun.net.TelnetO

Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题_java

废话不多说了,直接给大家贴代码了,具体代码如下所示: //文件上传 public static boolean uploadToFTP(String url,int port,String username,String password,String path,String filename,InputStream input) { boolean success=false; FTPClient ftp=new FTPClient();//org.apache.commons.net.ftp

Java实现文件上传的方法_java

本文实例为大家分享了Java实现文件上传的具体代码,具体内容如下 1.java代码: package com.github.reston.servlet; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax