Windows7下ftp服务器

1. 创建用户

 

2. 创建ftp服务

 

 

3. 管理ftp站点

 

4. 权限编辑

5. 绑定iP和端口

 

6. 访问

7. Java代码上传文件

 

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.StringTokenizer;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
import org.json.JSONArray;
import org.json.JSONObject;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import commonj.sdo.DataObject;
public class FtpFileUpUtil {
    
    public static String CODE="GBK";

    /**
     * 上传文件
     * 
     * @param hostname ftp服务器地址
     * @param port ftp服务器端口号
     * @param username ftp登录账号
     * @param password ftp登录密码
     * @param pathname ftp服务保存地址
     * @param fileName 上传到ftp的文件名
     * @param inputStream 输入文件流
     * @return
     */
    public static boolean uploadFile(String hostname, int port,String username, String password,String fileName,InputStream inputStream) {
        boolean flag = false;
        FTPClient ftpClient = new FTPClient();
//        ftpClient.setControlEncoding(CODE);
        try {
            ftpClient.connect(hostname, port); // 连接ftp服务器
            ftpClient.login(username, password); // 登录ftp服务器
            int replyCode = ftpClient.getReplyCode(); // 是否成功登录服务器
            if (!FTPReply.isPositiveCompletion(replyCode)) {
                return flag;
            }
            ftpClient.setFileType(ftpClient.BINARY_FILE_TYPE);
//            ftpClient.makeDirectory(new String(pathname.getBytes(CODE),"iso-8859-1"));
//            ftpClient.changeWorkingDirectory(new String(pathname.getBytes(CODE),"iso-8859-1"));
        //ftpClient.enterLocalPassiveMode();//client告诉ftp server开通一个端口来传输数据,防止有的ftp服务器乱搞,因为ftp server可能每次开启不同的端口来传输数据,但是在linux上或者其他服务器上面,由于安全限制,可能某些端口没有开启,所以就出现阻塞
ftpClient.storeFile(new String(fileName.getBytes(CODE),"iso-8859-1"), inputStream); inputStream.close(); ftpClient.logout(); flag = true; } catch (Exception e) { e.printStackTrace(); } finally { if (ftpClient.isConnected()) { try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } return true; } /** * * 上传文件(可对文件进行重命名) * * @param hostname FTP服务器地址 * * @param port FTP服务器端口号 * * @param username FTP登录帐号 * * @param password FTP登录密码 * * @param pathname FTP服务器保存目录 * * @param originfilename 待上传文件的名称(绝对地址) * * @return */ public static boolean uploadFileFromProduction(String hostname, int port,String username, String password,String filename,String originfilename) { boolean flag = false; try { InputStream inputStream = new FileInputStream(new File(originfilename)); flag = uploadFile(hostname, port, username, password,filename, inputStream); } catch (Exception e) { e.printStackTrace(); } return flag; } }

 

posted @ 2017-07-18 09:39  迢迢  阅读(364)  评论(0)    收藏  举报