精华内容
下载资源
问答
  • 工作期间,每次将文件上传ftp服务器时,均需要手工输入ip、用户名、密码等,因此,考虑编写脚本完成文件的上传任务。具体的脚本sync.sh如下: #!/bin/bash source ~/.bashrc # 模拟进入ftp命令行模式,其中EOF...
  • Java上传文件FTP服务器代码在实际的应用重,通常是通过程序来进行文件上传。实现java上传文件ftp服务器中新建maven项目添加依赖commons-netcommons-net3.33.实例代码:package com.test.fto.demo;/**ftp链接常量...

    Java上传文件FTP服务器代码

    在实际的应用重,通常是通过程序来进行文件的上传。

    实现java上传文件到ftp服务器中

    新建maven项目

    添加依赖

    commons-net

    commons-net

    3.3

    3.实例代码:

    package com.test.fto.demo;

    /**

    ftp链接常量

    */

    public class Ftp {

    private String ipAddr;//ip地址

    private Integer port;//端口号

    private String userName;//用户名

    private String pwd;//密码

    private String path;//aaa路径

    public String getIpAddr() {

    return ipAddr;

    }

    public void setIpAddr(String ipAddr) {

    this.ipAddr = ipAddr;

    }

    public Integer getPort() {

    return port;

    }

    public void setPort(Integer port) {

    this.port = port;

    }

    public String getUserName() {

    return userName;

    }

    public void setUserName(String userName) {

    this.userName = userName;

    }

    public String getPwd() {

    return pwd;

    }

    public void setPwd(String pwd) {

    this.pwd = pwd;

    }

    public String getPath() {

    return path;

    }

    public void setPath(String path) {

    this.path = path;

    }

    }

    测试代码:

    package com.test.fto.demo;

    import org.apache.commons.net.ftp.FTPClient;

    import org.apache.commons.net.ftp.FTPReply;

    import org.testng.annotations.Test;

    import java.io.File;

    import java.io.FileInputStream;

    import java.io.IOException;

    public class FtpUtil {

    private static FTPClient ftp;

    /**

    * 获取ftp连接

    *

    * @param f

    * @return

    * @throws Exception

    */

    public static boolean connectFtp(Ftp f) throws Exception {

    ftp = new FTPClient();

    boolean flag = false;

    int reply;

    if (f.getPort() == null) {

    ftp.connect(f.getIpAddr(), 21);

    } else {

    ftp.connect(f.getIpAddr(), f.getPort());

    }

    ftp.login(f.getUserName(), f.getPwd());

    ftp.setFileType(FTPClient.BINARY_FILE_TYPE);

    reply = ftp.getReplyCode();

    if (!FTPReply.isPositiveCompletion(reply)) {

    ftp.disconnect();

    return flag;

    }

    ftp.changeWorkingDirectory(f.getPath());

    flag = true;

    return flag;

    }

    /**

    * 关闭ftp连接

    */

    public static void closeFtp() {

    if (ftp != null && ftp.isConnected()) {

    try {

    ftp.logout();

    ftp.disconnect();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

    /**

    * ftp上传文件

    *

    * @param f

    * @throws Exception

    */

    public static void upload(File f) throws Exception {

    if (f.isDirectory()) {

    ftp.makeDirectory(f.getName());

    ftp.changeWorkingDirectory(f.getName());

    String[] files = f.list();

    for (String fstr : files) {

    File file1 = new File(f.getPath() + "/" + fstr);

    if (file1.isDirectory()) {

    upload(file1);

    ftp.changeToParentDirectory();

    } else {

    File file2 = new File(f.getPath() + "/" + fstr);

    FileInputStream input = new FileInputStream(file2);

    ftp.storeFile(file2.getName(), input);

    input.close();

    }

    }

    } else {

    File file2 = new File(f.getPath());

    FileInputStream input = new FileInputStream(file2);

    ftp.storeFile(file2.getName(), input);

    input.close();

    }

    }

    @Test

    public static void test() throws Exception {

    Ftp f = new Ftp();

    f.setIpAddr("your ip");

    f.setUserName("username");

    f.setPwd("password");

    FtpUtil.connectFtp(f);

    File file = new File("F:/robotium-solo-5.6.1.jar");

    FtpUtil.upload(file);//把文件上传在ftp上

    System.out.println("上传文件完成。。。。");

    }

    }

    __EOF__

    本文作者:久曲建的测试窝

    本文链接:https://www.cnblogs.com/longronglang/p/8724677.html

    关于博主:评论和私信会在第一时间回复。或者直接私信我。

    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!

    优秀不够,你是否无可替代

    软件测试交流QQ群:721256703,期待你的加入!!

    欢迎关注我的微信公众号:软件测试君

    ![](https://s4.51cto.com/images/blog/202011/30/926617efea0830de48e23dbfdd861f72.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

    展开全文
  • Ftp文件上传

    2017-03-30 11:27:31
    前段时间项目中用到的FTP文件上传,自己谢了一个基于FTPClient的FTP文件上传函数 用的到jar包的下载地址:commons-net-1.4.1.jar FTP文件上传过程中需要注意,FTP支持二级制和ASCII码的文件上传,需要根据需要指定...

    前段时间项目中用到的FTP文件上传,自己谢了一个基于FTPClient的FTP文件上传函数

    用的到jar包的下载地址:commons-net-1.4.1.jar

    FTP文件上传过程中需要注意,FTP支持二级制和ASCII码的文件上传,需要根据需要指定上传类型(一般二进制的没什么问题),不然会出现上传文件大小不一致或者损坏的问题。

    具体的实现:

    /**
    	 * FTPClient 上传文件到 ftp
    	 * ip ftp服务器ip
    	 * port 端口号
    	 * username 用户名
    	 * password  登录密码
    	 * path  存储路径
    	 * filename  存储文件名称
    	 * input  上传文件的输入流 
    	 */ 
    	boolean uploadFile(String ip, int port, String username, String password,
    			String path, String filename, InputStream input)
    	{
    		System.out.println("[发送文件到FTP]");
    		boolean success = false;
    		FTPClient ftp = new FTPClient();
    		try
    		{
    			int reply;
    			ftp.connect(ip, port);// 连接FTP服务器
    			ftp.login(username, password);// 登录
    			reply = ftp.getReplyCode();
    			ftp.setFileType(FTPClient.BINARY_FILE_TYPE); // 文件上传方式
    			ftp.enterLocalPassiveMode();//ftp server 开通一个端口进行数据传输
    			if (!FTPReply.isPositiveCompletion(reply))
    			{
    				ftp.disconnect();
    				return success;
    			}
    			ftp.makeDirectory(path);
    			ftp.changeWorkingDirectory(path);
    			ftp.setRemoteVerificationEnabled(false);
    
    			System.out.println("开始发送文件" + filename + "到FTP");
    			success = ftp.storeFile(filename, input);
    		} catch (IOException e)
    		{
    			System.out.println("[文件发送失败]");
    			e.printStackTrace();
    		} finally
    		{
    			if (ftp.isConnected())
    			{
    				try
    				{
    					input.close();
    					ftp.logout();
    					ftp.disconnect();
    				} catch (IOException ioe)
    				{
    					ioe.printStackTrace();
    				}
    			}
    		}
    		return success;
    	}


    希望对大家有帮助。


    展开全文
  • 工作期间,每次将文件上传ftp服务器时,均需要手工输入ip、用户名、密码等,因此,考虑编写脚本完成文件的上传任务。具体的脚本sync.sh如下: #!/bin/bash source ~/.bashrc # 模拟进入ftp命令行模式,其中...

    工作期间,每次将文件上传至ftp服务器时,均需要手工输入ip、用户名、密码等,因此,考虑编写脚本完成文件的上传任务。具体的脚本sync.sh如下:

    #!/bin/bash
    
    source ~/.bashrc
    
    # 模拟进入ftp命令行模式,其中EOF表示退出标记符
    ftp -niv <<- EOF

    # 根据ftp的ip地址与端口号,连接ftp服务器 open ip port

    # 输入用户名与密码 user userName password

    # 以bin模式进行传输,与ASCII模式有区别,使用bin模块能够防止乱码问题 bin

    # 上传文件 get $
    1

    # 结束
    bye
    #退出 EOF

    然后将该脚本sync.sh加入环境变量,每次只需执行 sync.sh filename即可,具体的执行过程如下:

    Connected to *.*.*.*.
    220 Microsoft FTP Service
    331 Password required for userName.
    230 User logged in.
    Remote system type is Windows_NT.
    200 Type set to I.
    local: filename remote: filename
    200 PORT command successful.
    125 Data connection already open; Transfer starting.
    226 Transfer complete.
    112089125 bytes received in 44.62 secs (2453.3 kB/s)
    221 Goodbye.

     

    转载于:https://www.cnblogs.com/mengrennwpu/p/6667384.html

    展开全文
  • 我的情况是利用宝塔面板,将新建FTP 和 本地文件链接 一.上传 1. 新建上传目录 在根目录下,新建/www/upload/,作为上传目标地址 2. 新建FTP 其中 根目录要指定之前建立的目录 TCP控制连接端口21,默认的协议端口,...

    我的情况是利用宝塔面板,将新建FTP 和 本地文件链接

    一.上传

    1. 新建上传目录

    在根目录下,新建/www/upload/,作为上传目标地址

    2. 新建FTP

    在这里插入图片描述

    其中

    • 根目录要指定之前建立的目录
    • TCP控制连接端口21,默认的协议端口,
    • 20:主动模式数据端口
    • 39000~40000:被动模端口范围
      这几个端口需要在防火墙中放行,
      使用命令firewall-cmd --zone=public --add-port=20/tcp --permanent开启端口
      查看已打开的端口:firewall-cmd --list-ports

    3. Java实现

    Maven依赖添加

     <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
       <version>3.3</version>
     </dependency>
    

    然后在文件上传工具类中添加功能实现代码

     public String upload(MultipartFile uploadFile) {
            //创建客户端对象
            FTPClient ftp = new FTPClient();
            //文件输出流
            InputStream inputStream=null;
            try {
                //ip+端口=连接ftp服务器
                ftp.connect("xx.xx.xx.xx",21);
                //登录:输入新增FTP时设置的用户名和密码
                ftp.login("admin","admin");
                //上传路径
                String path = "/www/upload/";
                //检测该路径是否存在,若不存在便新建此路径
                boolean b = ftp.changeWorkingDirectory(path);
                if(!b) {
                    ftp.makeDirectory(path);
                }
                //制定上传路径
                ftp.changeWorkingDirectory(path);
                //指定上传文件的类型为二进制文件
                ftp.setFileType(FTP.BINARY_FILE_TYPE);
                //获取文件输入流
                 inputStream= uploadFile.getInputStream();
                //得到源文件名
                String oldName = uploadFile.getOriginalFilename();
                //利用时间戳生成新的文件名
                String filename = String.valueOf(new Date().getTime()) + oldName.substring(oldName.lastIndexOf("."));
                //上传
                ftp.storeFile(filename,inputStream);
                //返回文件名
                return filename;
            } catch (SocketException e) {
            	System.out.println(e.getMessage());
                e.printStackTrace();
            } catch (IOException e) {
          		System.out.println(e.getMessage());
                e.printStackTrace();
            }finally {
                try {
                    //关闭文件流
                    inputStream.close();
                    //退出
                    ftp.logout();
                    //断开连接
                    ftp.disconnect();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return "没有么";
        }
    

    页面中可以这样

    <form action="Controller访问路径" id="combined_tasks_form" method="post" enctype="multipart/form-data">
        <input type="file" name="file"/>
        <input type="submit" value="上传"/>
    </form>
    //必须设置属性enctype="multipart/form-data"
    

    OK,经过上面这几步操作,我们就可以成功的将文件上传到服务器的/www/upolad文件下了。
    若是不成功,可以看看上传目标文件夹是否有读写权限。查看upload文件夹的权限
    在这里插入图片描述
    改为可写入即可。

    二、访问上传后的文件

    1.通过ftp直接下载

    FTP是文件传输协议,我们再次通过访问该ftp路径,即可下载服务器中的文件
    例如:ftp://admin:admin@xx.xx.xx.xx/index.html就可以下载此html文档了。

    通过http请求仅查看

    查看的话,就要将磁盘路径映射到网络地址,所以我们可以新建一个网站站点
    在这里插入图片描述
    在这里新建一个站点,
    在这里插入图片描述

    • 域名:如果没有域名,可以填写ip
    • 根目录:要映射到之前上传文件的目录,如我的:/www/upload
    • 端口默认为80,所以要打开80口的防火墙访问

    都做好后,就可以通过
    http://xx.xx.xx.xx:80/index.html访问资源了。

    更新

    通过上面的工作,localhost本地运行是没有问题的。
    如果将项目部署到服务器,会出现无法上传的问题。
    解决方法
    再文件传送前面添加

    ftp.enterLocalPassiveMode();
    ftp.storeFile(filename,local);
    

    原因:
    根据数据连接是否是服务器端主动建立,FTP有主动和被动两种模式

    • 主动模式:服务器端主动建立数据连接,其中服务器端的端口号为 20,客户端的端口号随机,但是必须大于 1024,因为 0~1023 是熟知端口号
    • 被动模式:客户端主动建立数据连接,其中客户端的端口号由客户端自己指定,服务器端的端口号随机
      所以当客户端主动建立连接,服务器的端口号随机,这个随机的端口号可能并没有被开启,造成连接失败,上传失败。
    展开全文
  • 文件自动上传FTP

    2018-08-29 13:55:34
    一款自己制作的文件上传小工具。只要设置好文件目录和需要上传到的FTP地址,便可以实时、批量推送文件。程序支持多开,所以可以对多个FTP路径服务。
  • FTP上传文件

    热门讨论 2016-08-31 18:04:02
    一、批量上传文件到FTP public void SendFileToFTP() { ServiceLog.WriteLog("开始进行FTP文件上传"); string ftpIP = ReadConfigData.FTPIP;//FTP的IP地址 string ftpPath = ReadConfigDa
  • 1.安装服务器 在项目中配置服务器属性 ftp.server.ip=你的FTP服务器ip地址 ftp.user=ftp ftp.pass=ftppassword ftp.server.http.prefix=ftp服务器...在实现类中进行文件上传 private static Logger logger = Logger...
  • Java上传文件FTP服务器代码在实际的应用重,通常是通过程序来进行文件上传。实现java上传文件ftp服务器中新建maven项目添加依赖commons-netcommons-net3.33.实例代码:package com.test.fto.demo;/**ftp链接常量...
  • ftp上传文件

    2013-05-13 11:50:44
    dos下命令是这样:开始-运行-cmdftpxxx.xxx.xxx.xxx输入帐号,密码上传文件:put本地硬盘的文件地址ftp上的文件地址及文件名下载文件:getftp上的文件地址及文件名本地硬盘的文件地址具体命令如下:FTP的命令行格式...
  • Flutter ftp上传文件

    2021-03-18 13:35:53
    文件上传FTPFTP下载文件/目录 列出FTP目录的内容 管理FTP文件(重命名/删除) 管理文件压缩/解压缩 完全异步函数 插件地址 pub插件地址 代码实战 引入插件 打开Flutter项目的pubspec.yaml引入依赖,最新版本...
  • FTP服务器搭建FTP服务器搭建详细步骤 - Wc&...2. 文件上传和下载。 文件上传。 修改UTF-8的状态。(将默认的True改为False) 打开“计算机”在工具栏输入:“ftp://地址”,回车。输入用户名、密码。 ...
  • ftp文件上传下载命令

    2019-11-26 20:22:18
    本文转载: 原文地址ftp文件上传下载命令
  • iOS下载和上传FTP文件

    2018-06-14 10:52:42
    在gitHub上找的一个ftp上传、下载文件的工具,由于gitHub有4、5年没有维护了,自己修改了部分源码,源地址:https://github.com/nkreipke/FTPManager
  • 如何将文件上传ftp

    万次阅读 2018-07-10 16:54:58
    双击我的电脑,在地址栏里输入你的ftp地址回车(比如: ftp://220.103.86.96),然后会弹出一个输入登录账号和密码的对话框,输入你的ftp账号和密码回车便进入ftp目录,把你想要上传文件或文件夹直接往里拖就行了...
  • ftp指用于Internet上的控制文件双向传输(下载和上传),可以自由存取和管理FTP服务器的资源,通过拖放即可完成文件或文件夹上传,使用方便且高效。IIS7服务器管理工具可以批量管理、定时上传下载、同步操作、数据...
  • libcurl上传文件ftp

    2018-08-03 00:41:32
    libcurl上传本地文件/图片到ftp int main() { char url = "ftp://……";//这里是ftp地址,我就不编了,哈哈哈 char fileName = "test.txt"; //如果是图片就是图片名.jpg FILE* fp = ...
  • java上传文件FTP文件出现数据丢失

    千次阅读 2015-04-15 15:28:46
    功能描述:读取数据写入文本,文本写入完毕后将文件上传到指定的FTP地址上。问题描述:数据写入文本成功,本地文件上传到FTP后发现文件尾部会丢失一部分数据。问题原因:原来在数据写入本地上传文件之前没有及时将...
  • PHP上传文件FTP服务器

    千次阅读 2018-06-07 15:36:45
    1、如下方法连接FTP和上传文件到FTP服务器public function ftptest(){ $conn = ftp_connect("...ftp地址") ftp_login($conn,"ftptest","123456?"); //进行FTP连接ftp_lo...
  • 将以下代码保存为.bat格式的文件,每次将要上传的补丁保存在规定的本地目录中,只要双击执行此文件就能上传到你的指定目录上。说明:192.168.1.1 ftp ip 地址21 端口username 用户名password 密码temp.txt 保存ftp...
  • * 上传文件FTP服务器 * @param host FTP服务器地址 * @param port FTP服务器端口 * @param username FTP登录账号 * @param password FTP登录密码 * @param basePath FTP服务器基础目录 * @param ...
  • 上传文件FTP

    2007-09-08 00:44:00
    利用 FtpWebRequest 类实现上传文件FTP. 先在本机建一个FTP站点,建在别的机器上也行..... 将 Ftp地址和帐号和密码等相关信息写在 Web.config , 方便管理 , 这里利用 FileUpload 的 FileContent 属性 , 将文件...
  • 上传文件FTP

    2007-10-20 10:33:00
    利用 FtpWebRequest 类实现上传文件FTP. 先在本机建一个FTP站点,建在别的机器上也行..... 将 Ftp地址和帐号和密码等相关信息写 在 Web.config , 方便管理 , 这里利用 FileUpload 的 FileContent 属性 , 将...
  • FTP 上传文件

    2013-09-04 14:42:00
    有时候需要通过FTP同步数据文件,除了比较稳定的IDE之外,我们程序员还可以根据实际的业务需求来开发具体的工具,具体的开发过程就不细说了,这里了解一下通过C#实现FTP上传文件到指定的地址。 /// <...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,583
精华内容 633
关键字:

文件上传ftp地址