热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javaftp上传,javaftp下载文件

本文目录一览:1、javaftp上传5G以上大文件,怎么做

本文目录一览:


  • 1、java ftp上传5G以上大文件,怎么做


  • 2、救火,如何用JAVA实现FTP多文件上传


  • 3、java jdk1.6环境下实现 ftp文件上传


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


  • 5、java中怎么实现ftp文件传输


  • 6、java ftp上传不了文件怎么办

java ftp上传5G以上大文件,怎么做

java上传可以使用common-fileupload上传组件的。common-fileupload是jakarta项目组开发的一个功能很强大的上传文件组件下面先介绍上传文件到服务器(多文件上传):import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.*;

import java.util.regex.*;

import org.apache.commons.fileupload.*;

public class upload extends HttpServlet {

private static final String CONTENT_TYPE = "text/html; charset=GB2312";

//Process the HTTP Post request

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

response.setContentType(CONTENT_TYPE);

PrintWriter out=response.getWriter();

try {

DiskFileUpload fu = new DiskFileUpload();

// 设置允许用户上传文件大小,单位:字节,这里设为2m

fu.setSizeMax(2*1024*1024);

// 设置最多只允许在内存中存储的数据,单位:字节

fu.setSizeThreshold(4096);

// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

fu.setRepositoryPath("c:\\windows\\temp");

//开始读取上传信息

List fileItems = fu.parseRequest(request);

// 依次处理每个上传的文件

Iterator iter = fileItems.iterator();//正则匹配,过滤路径取文件名

String regExp=".+\\\\(.+)$";//过滤掉的文件类型

String[] errorType={".exe",".com",".cgi",".asp"};

Pattern p = Pattern.compile(regExp);

while (iter.hasNext()) {

FileItem item = (FileItem)iter.next();

//忽略其他不是文件域的所有表单信息

if (!item.isFormField()) {

String name = item.getName();

long size = item.getSize();

if((name==null||name.equals("")) size==0)

continue;

Matcher m = p.matcher(name);

boolean result = m.find();

if (result){

for (int temp=0;temp if (m.group(1).endsWith(errorType[temp])){

throw new IOException(name+": wrong type");

}

}

try{//保存上传的文件到指定的目录//在下文中上传文件至数据库时,将对这里改写

item.write(new File("d:\\" + m.group(1))); out.print(name+" "+size+"

");

}

catch(Exception e){

out.println(e);

} }

else

{

throw new IOException("fail to upload");

}

}

}

}

catch (IOException e){

out.println(e);

}

catch (FileUploadException e){

out.println(e);

}

}

}

救火,如何用JAVA实现FTP多文件上传

新建一个web工程,用来测试上传功能。搭建好从前台访问后台的整个框架,并测试是否能接受参数。从apache官网上下载jar包,这里我们需要的jar包共三个,从官网或者其他途径都可以下载得到。编写上传的工具类。工具类主要是涉及两个方法,首先是连接服务器的方法。和我们平常常用的连接数据库等的方法类似,需要有服务器名,用户名和密码。第二个主要的方法就是上传的方法,上传的方法接受一个文件,这里需要注意的,需要去判断传入的是一个文件还是一个文件夹,如果是文件夹,需要循环进行文件上传处理。写方法调用工具类里的方法,并测试上传功能。这里需要注意的是连接服务器的端口号,20表示连接服务器,21表示有上传操作。

java jdk1.6环境下实现 ftp文件上传

通过JDK自带的API实现

package com.cloudpower.util;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import sun.net.TelnetInputStream;

import sun.net.TelnetOutputStream;

import sun.net.;

/**

* Java自带的API对FTP的操作

* @Title:

* @author: 周玲斌

*/

public class Ftp {

/**

* 本地文件名

*/

private String localfilename;

/**

* 远程文件名

*/

private String remotefilename;

/**

* FTP客户端

*/

private FtpClient ftpClient;

/**

* 服务器连接

* @param ip 服务器IP

* @param port 服务器端口

* @param user 用户名

* @param password 密码

* @param path 服务器路径

* @author 周玲斌

* @date 2012-7-11

*/

public void connectServer(String ip, int port, String user,

String password, String path) {

try {

/* ******连接服务器的两种方法*******/

//第一种方法

// ftpClient = new FtpClient();

// ftpClient.openServer(ip, port);

//第二种方法

ftpClient = new FtpClient(ip);

ftpClient.login(user, password);

// 设置成2进制传输

ftpClient.binary();

System.out.println("login success!");

if (path.length() != 0){

//把远程系统上的目录切换到参数path所指定的目录

ftpClient.cd(path);

}

ftpClient.binary();

} catch (IOException ex) {

ex.printStackTrace();

throw new RuntimeException(ex);

}

}

/**

* 关闭连接

* @author 周玲斌

* @date 2012-7-11

*/

public void closeConnect() {

try {

ftpClient.closeServer();

System.out.println("disconnect success");

} catch (IOException ex) {

System.out.println("not disconnect");

ex.printStackTrace();

throw new RuntimeException(ex);

}

}

/**

* 上传文件

* @param localFile 本地文件

* @param remoteFile 远程文件

* @author 周玲斌

* @date 2012-7-11

*/

public void upload(String localFile, String remoteFile) {

this.localfilename = localFile;

this.remotefilename = remoteFile;

TelnetOutputStream os = null;

FileInputStream is = null;

try {

//将远程文件加入输出流中

os = ftpClient.put(this.remotefilename);

//获取本地文件的输入流

File file_in = new File(this.localfilename);

is = new FileInputStream(file_in);

//创建一个缓冲区

byte[] bytes = new byte[1024];

int c;

while ((c = is.read(bytes)) != -1) {

os.write(bytes, 0, c);

}

System.out.println("upload success");

} catch (IOException ex) {

System.out.println("not upload");

ex.printStackTrace();

throw new RuntimeException(ex);

} finally{

try {

if(is != null){

is.close();

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if(os != null){

os.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

/**

* 下载文件

* @param remoteFile 远程文件路径(服务器端)

* @param localFile 本地文件路径(客户端)

* @author 周玲斌

* @date 2012-7-11

*/

public void download(String remoteFile, String localFile) {

TelnetInputStream is = null;

FileOutputStream os = null;

try {

//获取远程机器上的文件filename,借助TelnetInputStream把该文件传送到本地。

is = ftpClient.get(remoteFile);

File file_in = new File(localFile);

os = new FileOutputStream(file_in);

byte[] bytes = new byte[1024];

int c;

while ((c = is.read(bytes)) != -1) {

os.write(bytes, 0, c);

}

System.out.println("download success");

} catch (IOException ex) {

System.out.println("not download");

ex.printStackTrace();

throw new RuntimeException(ex);

} finally{

try {

if(is != null){

is.close();

}

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if(os != null){

os.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

public static void main(String agrs[]) {

String filepath[] = { "/temp/aa.txt", "/temp/regist.log"};

String localfilepath[] = { "C:\\tmp\\1.txt","C:\\tmp\\2.log"};

Ftp fu = new Ftp();

/*

* 使用默认的端口号、用户名、密码以及根目录连接FTP服务器

*/

fu.connectServer("127.0.0.1", 22, "anonymous", "IEUser@", "/temp");

//下载

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

fu.download(filepath[i], localfilepath[i]);

}

String localfile = "E:\\号码.txt";

String remotefile = "/temp/哈哈.txt";

//上传

fu.upload(localfile, remotefile);

fu.closeConnect();

}

}

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文件传输

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上传用到了commons-net-3.3.jar包

首先建立ftphost连接

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

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;

}


推荐阅读
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • Hadoop的文件操作位于包org.apache.hadoop.fs里面,能够进行新建、删除、修改等操作。比较重要的几个类:(1)Configurati ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 本文探讨了异步编程的发展历程,从最初的AJAX异步回调到现代的Promise、Generator+Co以及Async/Await等技术。文章详细分析了Promise的工作原理及其源码实现,帮助开发者更好地理解和使用这一重要工具。 ... [详细]
  • Zabbix自定义监控与邮件告警配置实践
    本文详细介绍了如何在Zabbix中添加自定义监控项目,配置邮件告警功能,并解决测试告警时遇到的邮件不发送问题。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 如何在Django框架中实现对象关系映射(ORM)
    本文介绍了Django框架中对象关系映射(ORM)的实现方式,通过ORM,开发者可以通过定义模型类来间接操作数据库表,从而简化数据库操作流程,提高开发效率。 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • Web动态服务器Python基本实现
    Web动态服务器Python基本实现 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • 2022年2月 微信小程序 app.json 配置详解:启用调试模式
    本文将详细介绍如何在微信小程序的 app.json 文件中启用调试模式(debug),并通过实际案例展示其配置方法和应用场景。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
author-avatar
老陈
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有