Java web 用FTP上传文件

问题描述

importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importsun.net.TelnetInputStream;importsun.net.TelnetOutputStream;importsun.net.ftp.FtpClient;/***Java自带的API对FTP的操作*@Title:a.java*@author:*/publicclassa{/***本地文件名*/privateStringlocalfilename;/***远程文件名*/privateStringremotefilename;/***FTP客户端*/privateFtpClientftpClient;/***服务器连接*@paramip服务器IP*@paramport服务器端口*@paramuser用户名*@parampassword密码*@parampath服务器路径*@author*@date*/publicvoidconnectServer(Stringip,intport,Stringuser,Stringpassword,Stringpath){try{/*******连接服务器的两种方法*******///第一种方法//ftpClient=newFtpClient();//ftpClient.openServer(ip,port);//第二种方法ftpClient=newFtpClient(ip);ftpClient.login(user,password);//设置成2进制传输ftpClient.binary();System.out.println("loginsuccess!");if(path.length()!=0){//把远程系统上的目录切换到参数path所指定的目录ftpClient.cd(path);}ftpClient.binary();}catch(IOExceptionex){ex.printStackTrace();thrownewRuntimeException(ex);}}/***关闭连接*@author*@date*/publicvoidcloseConnect(){try{ftpClient.closeServer();System.out.println("disconnectsuccess");}catch(IOExceptionex){System.out.println("notdisconnect");ex.printStackTrace();thrownewRuntimeException(ex);}}/***上传文件*@paramlocalFile本地文件*@paramremoteFile远程文件*@author*@date*/publicvoidupload(StringlocalFile,StringremoteFile){this.localfilename=localFile;this.remotefilename=remoteFile;TelnetOutputStreamos=null;FileInputStreamis=null;try{//将远程文件加入输出流中os=ftpClient.put(this.remotefilename);//获取本地文件的输入流Filefile_in=newFile(this.localfilename);is=newFileInputStream(file_in);//创建一个缓冲区byte[]bytes=newbyte[1024];intc;while((c=is.read(bytes))!=-1){os.write(bytes,0,c);}System.out.println("uploadsuccess");}catch(IOExceptionex){System.out.println("notupload");ex.printStackTrace();thrownewRuntimeException(ex);}finally{try{if(is!=null){is.close();}}catch(IOExceptione){e.printStackTrace();}finally{try{if(os!=null){os.close();}}catch(IOExceptione){e.printStackTrace();}}}}publicstaticvoidmain(Stringagrs[]){//Stringfilepath[]={"/temp/aa.txt","/temp/regist.log"};//Stringlocalfilepath[]={"C:\tmp\1.txt","C:\tmp\2.log"};afu=newa();/**使用默认的端口号、用户名、密码以及根目录连接FTP服务器*/fu.connectServer("服务器IP",端口,"用户名","密码","/");//下载//for(inti=0;i<filepath.length;i++){//fu.download(filepath[i],localfilepath[i]);//}Stringlocalfile="E:\号码.txt";Stringremotefile="/temp/哈哈.txt";//上传fu.upload(localfile,remotefile);fu.closeConnect();}}

以上是我的代码,可是报错了~报错代码如下:java.net.ConnectException:Connectionrefused:connectatjava.net.PlainSocketImpl.socketConnect(NativeMethod)atjava.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)atjava.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)atjava.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)atjava.net.Socket.connect(Socket.java:519)atjava.net.Socket.connect(Socket.java:469)atsun.net.NetworkClient.doConnect(NetworkClient.java:163)atsun.net.NetworkClient.openServer(NetworkClient.java:118)atsun.net.ftp.FtpClient.openServer(FtpClient.java:488)atsun.net.ftp.FtpClient.<init>(FtpClient.java:761)ata.connectServer(a.java:47)ata.main(a.java:137)Exceptioninthread"main"java.lang.RuntimeException:java.net.ConnectException:Connectionrefused:connectata.connectServer(a.java:60)ata.main(a.java:137)Causedby:java.net.ConnectException:Connectionrefused:connectatjava.net.PlainSocketImpl.socketConnect(NativeMethod)atjava.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)atjava.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)atjava.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)atjava.net.Socket.connect(Socket.java:519)atjava.net.Socket.connect(Socket.java:469)atsun.net.NetworkClient.doConnect(NetworkClient.java:163)atsun.net.NetworkClient.openServer(NetworkClient.java:118)atsun.net.ftp.FtpClient.openServer(FtpClient.java:488)atsun.net.ftp.FtpClient.<init>(FtpClient.java:761)ata.connectServer(a.java:47)...1more

解决方案

解决方案二:
你这代码是网上copy的吧看看这个
解决方案三:
引用1楼shijing266的回复:

你这代码是网上copy的吧看看这个

是网上copy的,你发的那个,我copy下来,直接报错~需要什么jar包吗?
解决方案四:
那你还是看这个吧,需要一个io包和一个common包
解决方案五:
引用3楼shijing266的回复:

那你还是看这个吧,需要一个io包和一个common包

试了,没报错,但是不成功~
解决方案六:
没大神帮忙解决吗?

时间: 2024-10-21 14:27:25

Java web 用FTP上传文件的相关文章

suse linux java ftp上传文件名称导致报错,求大神指导

问题描述 suse linux java ftp上传文件名称导致报错,求大神指导 上传时"school_user.questionext.csv"就因为文件名称多了一个"."导致报错 553 Could not create file.

服务器-Java FTP上传文件夹,只能上传到FTP根目录,如何上传到指定目录

问题描述 Java FTP上传文件夹,只能上传到FTP根目录,如何上传到指定目录 Java FTP上传文件夹,只能上传到FTP根目录,如何上传到指定目录 如果文件较大,如何完整的上传到FTP的服务器 解决方案 用ftpClient.changeWorkingDirectory更改路径,路径不必以/开始

php实现通过ftp上传文件_php技巧

大概原理 遍历项目中的所有非排除文件,然后获取 文件修改时间晚于文件上一次修改时间 的文件 然后将这些文件,通过ftp上传到对应的目录 具体代码如下: 因为只是工具,代码很乱,见谅 <?php error_reporting(7); if ($_SERVER['SERVER_ADDR'])exit;//禁止在web服务器下运行 $_GET['exclude'] = array('number.txt','uploads','Zend','docs','cache','You','managesd

PHP实现ftp上传文件示例_php技巧

FTP上传是PHP实现的一个常见且非常重要的应用技巧,今天就来与大家分享一下PHP实现FTP上传文件的简单示例.希望对大家的PHP学习能带来一定的帮助. 主要代码如下: function make_directory($ftp_stream, $dir){ // if directory already exists or can be immediately created return true if ($this->ftp_is_dir($ftp_stream, $dir) || @ftp

ftp 上传文件异常

问题描述 大家好:请帮我看看,谢谢贴上部分代码:......ftpClient.binary();Filefile_in=newFile(filename);if(!file_in.exists())return-1;if(file_in.length()==0)return-2;os=ftpClient.put(newname);result=file_in.length();is=newFileInputStream(file_in);byte[]bytes=newbyte[1024];in

php-在Linux FTP上传文件到网页之后 网页出现了404

问题描述 在Linux FTP上传文件到网页之后 网页出现了404 网页变成了这个样子,但是我默认首页已经设置成了index.php,然后我的主机也是能解析PHP的. 在这里我已经把我的文件放在了htdocs下,但是还是出现了404的问题,求解答一下,谢谢啦 解决方案 Linux中上传文件到ftp 解决方案二: 403是权限问题,你这个不是404 解决方案三: 确认一下目录访问权限有没有设置 解决方案四: 访问权限的问题,查一下访问权限的设置 解决方案五: 403是权限不够,请确认目录是否有权限

ftp上传文件老有上传失败

问题描述 最近一个项目用Apache的包ftp上传文件,对方服务器未开启防火墙之前一切都正常.对方开了防火墙之后经常有很多文件上传失败,但是每次连接又是正常的.后面改用ftp4j.jar包也是一样.各位有什么想法没有?防火墙是必须开的 解决方案 解决方案二:ftp的端口是不是被防火墙封了?解决方案三:不是,连接正常,而且有文件上传成功,只是经常有很多文件上传失败解决方案四:引用2楼sb6365的回复: 不是,连接正常,而且有文件上传成功,只是经常有很多文件上传失败 上传失败的文件后台有操作日志吗

批处理FTP上传文件_DOS/BAT

背景:本机一个文件"A.TXT"在C盘根目录下,需要上传到FTP服务器"192.168.0.1"的"X"目录下面 复制代码 代码如下: @echo off set ftpfile=putfiles.ftp set logfile=putfiles.log echo open 192.168.0.1 > "%ftpfile%" rem 把下面行中的 username和password改为你的用户名和密码 echo user

用C#实现FTP上传文件夹

问题描述 用C#实现FTP上传文件夹,上传文件已解决,但不会上传文件夹,望大神们解救. 解决方案 解决方案二:创建文件夹不就行了解决方案三:///<summary>///创建文件夹///</summary>///<paramname="dirName"></param>publicvoidMakeDir(stringdirName){FtpWebRequestreqFTP;try{//dirName=nameofthedirectoryt