1. 在计算机管理的本地用户和组新建一个用来登录ftp服务器的用户:
2. 在D盘新建一个测试目录ftp_upload:
3. 添加Windows的FTP组件和IIS组件:
4. 打开IIS管理平台,在网站那里右键,选择添加FTP站点,配置相关信息:
4.1 配置本地上传的物理路径:
4.2 配置IP和SSL,这里不选择SSL先
4.3 权限配置
5. 登录
在我的电脑输入如下链接,然后输入刚刚创建的账号linjk及其密码即可
6. 基于JAVA的ftp文件上传
上面是使用图形界面的模式,下面基于java来配置使用
6.1 添加maven依赖
6.2 编写上传部分代码
package cn.linjk.Utils; import org.apache.commons.net.ftp.FTPClient; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class FtpClient { /** * ftp上传单个文件 * @param ftpUrl ftp地址,ip即可,不需要ftp://前缀 * @param userName ftp的用户名 * @param password ftp的密码 * @param directory 上传至ftp的目录路径名,不包括ftp地址 * @param srcFileName 要上传的文件全路径名 * @param destName 上传至ftp后存储的文件名 * @throws IOException */ public static boolean upload(String ftpUrl, String userName, String password, String directory, String srcFileName, String destName) throws IOException { FTPClient ftpClient = new FTPClient(); FileInputStream fis = null; boolean result = false; try { ftpClient.connect(ftpUrl,21); // ftp端口默认为21 ftpClient.login(userName, password); ftpClient.enterLocalPassiveMode(); File srcFile = new File(srcFileName); fis = new FileInputStream(srcFile); ftpClient.changeWorkingDirectory(directory); // 设置上传目录 ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("gbk"); ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); // 设置文件类型(二进制) result = ftpClient.storeFile(destName, fis); return result; } catch(FileNotFoundException e){ throw new FileNotFoundException(); } finally { if (fis != null) { fis.close(); } try { ftpClient.disconnect(); } catch (IOException e) { throw new RuntimeException("关闭FTP连接发生异常!", e); } } } }
7. 测试代码
运行后,在刚刚配置的D盘的ftp_upload的linjk子目录下会有test.txt文件: