import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.ftp.FTPReply;public class Upload {
private String server = "192.9.100.88:2121";//先在自己的机上设一个FTP站点吧
private String username = "ftpLan";//登录名
private String password = "ftpLan";//密码
private String local = "d:\\upload";//FTP站点目录
private String remote = "D:\\lan.txt"; //要传的文件. ----------你看一下我理解的对不对哟.请教.
public String getLocal() {
return local;
}
public void setLocal(String local) {
this.local = local;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRemote() {
return remote;
}
public void setRemote(String remote) {
this.remote = remote;
}
public String getServer() {
return server;
}
public void setServer(String server) {
this.server = server;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public boolean UploadFile( String server, String username, String password, String local, String remote ) {
FTPClient ftp = new FTPClient();
int reply;
try {
ftp.connect(server);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return false;
}
}
catch (IOException e) {
if (ftp.isConnected()) {
try {
ftp.disconnect();
}
catch (IOException f) {
return false;
}
}
} try {
if (!ftp.login(username, password)){
ftp.logout();
return false;
}
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
String[] dirArray = remote.split("/");
if ( dirArray.length > 1 ){
for ( int i = 0; i < dirArray.length - 1; i++ ){
if ( dirArray[i] != null && dirArray[i] != null )
if ( !ftp.changeWorkingDirectory( dirArray[i] ) ){
ftp.makeDirectory( dirArray[i] );
ftp.changeWorkingDirectory( dirArray[i] );
}
}
}
InputStream input = new FileInputStream(local);
ftp.storeFile(dirArray[dirArray.length-1], input);
input.close();
ftp.logout();
}
catch (FTPConnectionClosedException e){
if ( ftp.isConnected() ){
try{
ftp.disconnect();
}
catch (IOException f) {
return false;
}
}
return false;
}
catch (IOException e){
if ( ftp.isConnected() ){
try{
ftp.disconnect();
}
catch (IOException f){
return false;
}
}
return false;
}
finally{
if ( ftp.isConnected() ) {
try
{
ftp.disconnect();
}
catch (IOException f)
{
return false;
}
}
}
return true;
}
public static void main(String args []){
Upload ud = new Upload();
ud.UploadFile(ud.getServer(),ud.getUsername(),ud.getUsername(),ud.getPassword(),ud.getLocal());
}
}这个程序无法运行哟,请高手帮忙.非常感谢.
import java.io.IOException;
import java.io.InputStream;import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPConnectionClosedException;
import org.apache.commons.net.ftp.FTPReply;public class Upload {
private String server = "192.9.100.88:2121";//先在自己的机上设一个FTP站点吧
private String username = "ftpLan";//登录名
private String password = "ftpLan";//密码
private String local = "d:\\upload";//FTP站点目录
private String remote = "D:\\lan.txt"; //要传的文件. ----------你看一下我理解的对不对哟.请教.
public String getLocal() {
return local;
}
public void setLocal(String local) {
this.local = local;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getRemote() {
return remote;
}
public void setRemote(String remote) {
this.remote = remote;
}
public String getServer() {
return server;
}
public void setServer(String server) {
this.server = server;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public boolean UploadFile( String server, String username, String password, String local, String remote ) {
FTPClient ftp = new FTPClient();
int reply;
try {
ftp.connect(server);
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return false;
}
}
catch (IOException e) {
if (ftp.isConnected()) {
try {
ftp.disconnect();
}
catch (IOException f) {
return false;
}
}
} try {
if (!ftp.login(username, password)){
ftp.logout();
return false;
}
ftp.setFileType(FTP.BINARY_FILE_TYPE);
ftp.enterLocalPassiveMode();
String[] dirArray = remote.split("/");
if ( dirArray.length > 1 ){
for ( int i = 0; i < dirArray.length - 1; i++ ){
if ( dirArray[i] != null && dirArray[i] != null )
if ( !ftp.changeWorkingDirectory( dirArray[i] ) ){
ftp.makeDirectory( dirArray[i] );
ftp.changeWorkingDirectory( dirArray[i] );
}
}
}
InputStream input = new FileInputStream(local);
ftp.storeFile(dirArray[dirArray.length-1], input);
input.close();
ftp.logout();
}
catch (FTPConnectionClosedException e){
if ( ftp.isConnected() ){
try{
ftp.disconnect();
}
catch (IOException f) {
return false;
}
}
return false;
}
catch (IOException e){
if ( ftp.isConnected() ){
try{
ftp.disconnect();
}
catch (IOException f){
return false;
}
}
return false;
}
finally{
if ( ftp.isConnected() ) {
try
{
ftp.disconnect();
}
catch (IOException f)
{
return false;
}
}
}
return true;
}
public static void main(String args []){
Upload ud = new Upload();
ud.UploadFile(ud.getServer(),ud.getUsername(),ud.getUsername(),ud.getPassword(),ud.getLocal());
}
}这个程序无法运行哟,请高手帮忙.非常感谢.
ftp站点目录怎么可以是绝对路径?