「java发送ftp」java发送邮件的简单实现

博主:adminadmin 2022-12-08 10:30:09 56

本篇文章给大家谈谈java发送ftp,以及java发送邮件的简单实现对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java 实现ftp上传如何创建文件夹?

准备条件:java实现ftp上传用到了commons-net-3.3.jar包

首先建立ftphost连接

public boolean connect(String path, String addr, int port, String username, String password) {

try {

//FTPClient ftp = new FTPHTTPClient(addr, port, username, password);

ftp = new FTPClient();

int reply;

;

System.out.println("连接到:" + addr + ":" + port);

System.out.print();

reply = ;

if (!FTPReply.isPositiveCompletion(reply)) {

;

System.err.println("FTP目标服务器积极拒绝.");

System.exit(1);

return false;

}else{

(username, password);

;

;

;

System.out.println("已连接:" + addr + ":" + port);

return true;

}

} catch (Exception ex) {

ex.printStackTrace();

System.out.println(ex.getMessage());

return false;

}

}

然后再利用ftpclient的makeDirectory方法创建文件夹

public void createDir(String dirname){

try{

;

System.out.println("在目标服务器上成功建立了文件夹: " + dirname);

}catch(Exception ex){

System.out.println(ex.getMessage());

}

}

断开host连接

public void disconnect(){

try {

;

} catch (IOException e) {

e.printStackTrace();

}

}

最后是程序的调用方法

public static void main(String[] args) {

FtpUploadTest ftpupload = new FtpUploadTest();

if(ftpupload.connect("", "172.39.8.x", 20, "administrator", "abc@123")){

ftpupload.createDir("/UPLOAD");

ftpupload.disconnect();

}

}

如何用java代码实现ftp文件上传

import java.io.File;

import java.io.FileInputStream;

import org.apache.commons.net.;

import org.apache.commons.net.;

public class test {

private FTPClient ftp;

/**

*

* @param path 上传到ftp服务器哪个路径下

* @param addr 地址

* @param port 端口号

* @param username 用户名

* @param password 密码

* @return

* @throws Exception

*/

private boolean connect(String path,String addr,int port,String username,String password) throws Exception {

boolean result = false;

ftp = new FTPClient();

int reply;

;

;

;

reply = ;

if (!FTPReply.isPositiveCompletion(reply)) {

;

return result;

}

;

result = true;

return result;

}

/**

*

* @param file 上传的文件或文件夹

* @throws Exception

*/

private void upload(File file) throws Exception{

if(file.isDirectory()){

(file.getName());

(file.getName());

String[] files = file.list();

for (int i = 0; i files.length; i++) {

File file1 = new File(file.getPath()+"\\"+files[i] );

if(file1.isDirectory()){

upload(file1);

;

}else{

File file2 = new File(file.getPath()+"\\"+files[i]);

用java有一个ftp路径地址,需要把传送一些数据到ftp中怎样实现

1.使用的FileZillaServer开源,安装过后建立的本地FTP服务器。2.使用的apache上FTP工具包,引用到工程目录中。3.IDE,Eclipse,JDK6上传和目录的实现原理:对每一个层级的目录进行判断,是为目录类型、还是文件类型。如果为目录类型,采用递归调用方法,检查到最底层的目录为止结束。如果为文件类型,则调用上传或者方法对文件进行上传或者操作。贴出代码:(其中有些没有代码,可以看看,还是很有用处的)!

java中怎么实现ftp文件传输

package com.quantongfu.;

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.net.ServerSocket;

import java.util.List;

import org.apache.commons.net.;

import org.apache.log4j.Logger;

import org.apache.log4j.net.SocketServer;

import com.quantongfu.conf.FtpConf;

/**

 * @项目名称: telinSyslog

 * @文件名称: 

 * @创建日期:2015年9月14日 下午3:22:08

 * @功能描述:ftp实体类,用于连接,上传

 * @修订记录:

 */

public class Ftp {

    private static Logger logger = Logger.getLogger();

    private FTPClient ftp;

    /**

     * 

     * @param path

     *            上传到ftp服务器哪个路径下

     * @param addr

     *            地址

     * @param port

     *            端口号

     * @param username

     *            用户名

     * @param password

     *            密码

     * @return

     * @throws Exception

     */

    public boolean connect() throws Exception {

        boolean result = false;

        ftp = new FTPClient();

        int reply;

        (FtpConf.FTP_HOST, FtpConf.FTP_PORT);

        (FtpConf.FTP_USER_NAME, FtpConf.FTP_PASSWORD);

        ;

        ;

        reply = ;

        if (!FTPReply.isPositiveCompletion(reply)) {

            ;

            return result;

        }

        if (FtpConf.IS_FTP_DIRECTORY) {

            ;

        }

        result = true;

        return result;

    }

    /**

     * 

     * @param files

     *            上传的文件

     * @throws Exception

     */

    public boolean upload(File file) throws IOException {

        FileInputStream input = null;

        try {

            input = new FileInputStream(file);

            boolean b = (file.getName() + ".tmp", input);

            if (b) {

                b = (file.getName() + ".tmp", file.getName());

            }

            return b;

        } catch (Exception e) {

            e.printStackTrace();

            return false;

        } finally {

            if (input != null) {

                input.close();

            }

        }

    }

    /**

     * 

     * @param files

     *            上传的文件

     * @throws Exception

     */

    public boolean upload(ServerSocket server, File file) throws Exception {

        FileInputStream input = null;

        try {

            if (!file.exists()) {

                return true;

            }

            input = new FileInputStream(file);

            boolean b = (server, file.getName() + ".tmp", input);

            if (b) {

                b = (file.getName() + ".tmp", file.getName());

                if (b) {

                    file.delete();

                }

            }

            return b;

        } catch (Exception e) {

            logger.error("ftp error" + e.getMessage());

            return false;

        } finally {

            if (input != null) {

                try {

                    input.close();

                } catch (IOException e) {

                    e.printStackTrace();

                }

            }

        }

    }

        /*断开连接*/

    public void disConnect() {

        try {

            if (ftp != null) {

                ;

            }

        } catch (IOException e) {

            e.printStackTrace();

        }

    }

        /*获取连接*/

    public static Ftp getFtp() {

        Ftp ftp = new Ftp();

        try {

            ;

        } catch (Exception e) {

            logger.error("FTP连接异常" + e.getMessage());

            e.printStackTrace();

        }

        return ftp;

    }

        /*重连*/

    public Ftp reconnect() {

        disConnect();

        return getFtp();

    }

}

使用Apache FtpClient jar包,获取jar :

java中怎么实现ftp服务器

学习了计算机网络之后,利用java写了一个ftp服务器。

一、实现的ftp命令

实现了基本的user,pass,list,port,quit,retr,cwd,stor等命令

二、以上命令所对应的功能

对应的功能是:下载,上传,获取服务器目录,切换目录等

三、用于测试的ftp客户端:windows自带的ftp客户端

四、实现的思想

1、使用ServerSocket进行监听,每个控制连接的请求到来之后,开启一个线程进行处理(这里使用的java bio,效率较差,对于控制连接最好使用NIO处理,之后会再写个

nio的实现)

2、 对于命令使用工厂方法模式进行设计,当需要添加新的命令的时候,只需要添加一个新的命令类,实现相应接口,修改工厂产生逻辑,而不用修改其他的程序代码。可

扩展性较好,同时符合开闭原则。

五、实现过程中碰到的问题

1、对于tcp与socket的关系理解错误,以为所有的数据的输入都是要经过serverSocket().accept()方法。其实,ServerSocket.accept()所对应的是tcp里面的三次握手建

立连接的阶段,之后的tcp的连接由客户端和服务器端的一对socket来维护,是属于establish阶段,在这个阶段,通信是全双工的,任何一方都能够发送数据。

socket.close()对应的阶段是断开连接(四次挥手)的阶段。

2、刚开始对于ftp协议不是很理解,不知道他的工作方式是怎样的,后来在看了tcp协议卷里面的ftp的内容之后,才知道ftp命令和应答码是关键。eg:刚开始测试时,在

输入用户名之后,不会提示输入密码的。原因:没有返回对应的应答码:331. 另外要注意的是:返回的数据要以换行回车作为结束--\r\n.

六、代码列表

简单说明:

ftpServer:是服务器的主程序,入口,同时负责监听本地的21号端口。

ControllerThread.java:用于处理控制连接的线程(每一个控制连接请求对应一个线程)ps:实在很浪费(流量小,连接多)。

Share:一些全局性数据的维护。

Command:是命令接口,定义了一个所有命令都要实现的方法。

CommandFactory:命令工厂,通过传人的参数,决定生成的命令对象。

UserCommand,PortCommand等:是具体ftp命令的实现

java发送ftp的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java发送邮件的简单实现、java发送ftp的信息别忘了在本站进行查找喔。

The End

发布于:2022-12-08,除非注明,否则均为首码项目网原创文章,转载请注明出处。