Java上传文件ftp服务器
我正在尝试用Java制作一个函数:Java上传文件ftp服务器,java,file,upload,ftp,Java,File,Upload,Ftp,我正在尝试用Java制作一个函数: public static void upload_files(String us, String pw, String ip, String f){ try { FTPClient client = new FTPClient(); client.connect(ip); client.login(us,pw); client.upload(f); } catch(Exception e) { e.printSt
public static void upload_files(String us, String pw, String ip, String f){
try
{
FTPClient client = new FTPClient();
client.connect(ip);
client.login(us,pw);
client.upload(f);
} catch(Exception e) {
e.printStackTrace();
}
}
我添加了apache库,但遗憾的是,我在“上载”行中出错
我想我没有正确使用上传的方法,但我不知道如何
当我用Netbeans编译它时,它注意到有一行错误“client.upload(f);”
输出中给出的错误是“java.lang.RuntimeException:不可编译的源代码-错误的符号类型:org.apache.commons.net.ftp.FTPClient.upload”
提前谢谢大家。
注意:“f”是指向我的文件的直接路径
编辑:
问题“完全”解决了,因为现在我在ftp服务器上上传了一些文件,但遗憾的是,它们都是空的,如下所示。Apache FTPClient没有
上传方法
它所拥有的是一个名为的方法
它将文件在服务器上应有的名称和InputStream
作为参数。InputStream读取本地文件,因此您需要:
InputStream is = new FileInputStream( f );
client.storeFile( some_name, is );
知道你会遇到什么样的错误会更容易…@Adam:我就是不能在netbeans上运行我的程序,因为这行是“client.upload(f)”。。。根据软件“找不到符号”。只需在此处复制粘贴堆栈跟踪。当我查看时,我没有看到上载方法。请不要编辑问题以删除问题。这使得这个问题对于未来的访问者来说毫无用处。现在,由于netbeans,我在“storeFile”中遇到了同样的错误,即“找不到符号”。当我运行它时,会出现这个错误:“java.lang.RuntimeException:不可编译的源代码-错误的符号类型:storeFile”。我认为这个错误不是来自netbeans。下面是编译后的错误:“错误:找不到symbol-storeFile(“test1”,is);symbol:method-storeFile(String,InputStream)位置:class-main 1错误”我明白了。事实上,现在上传了一些文件。遗憾的是,文件完全是空的,但我的主要观点已经解决了。不,我想知道为什么我的txt文件没有上传。但是我会在我的ftp服务器上上传一些“test1.txt”。我应该为这样的问题打开一个新的主题吗?或者我们可以继续吗?因为上载的文件完全为空(0 B)。您可能需要在InputStream上调用flush
或close
。API文档是。如果您是Java新手,这可能会显得有点吓人,但当您习惯它时,这一点就非常清楚了。