Java实现FTP文件上传
用ftp协议上传文件大于1M的文件速度比http快;文件越大;上传的速度就比http上传快的倍数越大。而且用java编写程序;ftp比http方便
转自:http://my.csdn.net/cai120yang/code/detail/9867
import org.apache.commons.io.IOUtils; import org.apache.commons.net.ftp.FTPClient; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.FileOutputStream; /** * Apache commons-net 试用一把,看看FTP客户端工具做的好用不 * */ public class FtpTest { public static void main(String[] args) { testUpload(); // testDownload(); } /** * FTP上传单个文件测试 * 1.连接服务 * 2.确定你要上传的文件 * 3.指定你在服务器端存放的位置 */ public static void testUpload() { FTPClient ftpClient = new FTPClient(); FileInputStream fis = null; try { ftpClient.connect("192.168.1.111"); ftpClient.login("admin", "javaf"); File srcFile = new File("F:\images\460.jpg"); fis = new FileInputStream(srcFile); //设置上传目录 ftpClient.changeWorkingDirectory("/lanjie/pic"); ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("GBK"); //设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.storeFile("work.jpg", fis); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("FTP客户端出错!", e); } finally { IOUtils.closeQuietly(fis); try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("关闭FTP连接发生异常!", e); } } } /** * FTP下载单个文件测试 */ public static void testDownload() { FTPClient ftpClient = new FTPClient(); FileOutputStream fos = null; try { ftpClient.connect("192.168.1.111"); ftpClient.login("admin", "javaf"); String remoteFileName = "/lanjie/pic/girl.jpg"; fos = new FileOutputStream("c:/down.jpg"); ftpClient.setBufferSize(1024); //设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.retrieveFile(remoteFileName, fos); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("FTP客户端出错!", e); } finally { IOUtils.closeQuietly(fos); try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); throw new RuntimeException("关闭FTP连接发生异常!", e); } } } }