日期:2014-05-16 浏览次数:20309 次
?FtpUtil:
import java.io.DataInputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import sun.net.TelnetInputStream; import sun.net.TelnetOutputStream; import sun.net.ftp.FtpClient; public class FtpUtil { FtpClient ftpClient ; /** * connectServer * 连接ftp服务器 * @throws java.io.IOException * @param path 文件夹,空代表根目录 * @param password 密码 * @param user 登陆用户 * @param server 服务器地址 */ public void connectServer(String server, String user, String password, String path) throws IOException { // server:FTP服务器的IP地址;user:登录FTP服务器的用户名 // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径 ftpClient = new FtpClient(); ftpClient.openServer(server); ftpClient.login(user, password); //path是ftp服务下主目录的子目录 if (path.length() != 0) ftpClient.cd(path); //用2进制上传、下载 ftpClient.binary(); } public void connectServer() throws IOException { // server:FTP服务器的IP地址;user:登录FTP服务器的用户名 // password:登录FTP服务器的用户名的口令;path:FTP服务器上的路径 ftpClient = new FtpClient(); ftpClient.openServer("221.193.212.119"); ftpClient.login("admin", "admin"); //path是ftp服务下主目录的子目录 ftpClient.cd("test"); //用2进制上传、下载 ftpClient.binary(); } /** * upload * 上传文件 * @throws java.lang.Exception * @return -1 文件不存在 * -2 文件内容为空 * >0 成功上传,返回文件的大小 * @param newname 上传后的新文件名 * @param filename 上传的文件 */ public long upload(String filename,String newname) throws Exception { long result = 0; TelnetOutputStream os = null; FileInputStream is = null; try { connectServer(); java.io.File file_in = new java.io.File(filename); if (!file_in.exists()) return -1; if (file_in.length()==0) return -2; os = ftpClient.put(newname); result = file_in.length(); is = new FileInputStream(file_in); byte[] bytes = new byte[1024]; int c; while ((c = is.read(bytes)) != -1) { os.write(bytes, 0, c); } }finally { if (is != null) { is.close(); } if (os != null) { os.close(); } closeServer(); } return result; } /** * upload * @throws java.lang.Exception * @return * @param filename */ public long upload(String filename) throws Exception { String str = ""; System.out.println("11111"); if (filename.indexOf("/")>-1) { str = filename.substring(filename.lastIndexOf("/")+1); }else { str = filename; } System.out.println("22222"); String suffix=filename.substring(filename.lastIndexOf("."),filename.length()); String md5=MD5Digest.Md5(str); java.text.SimpleDateFormat simpledateformat; simpledateformat = new java.text.SimpleDateFormat ("yyyyMMddhhmmssss"); Date dt=new Date(); String strDate=simpledateformat.format(dt); String newname=strDate+md5+suffix; System.out.println("filename:"+filename); System.out.println("newname:"+newname); return upload(filename,newname); } /** * download * 从ftp下载文件到本地 * @throws java.lan