私がやっているのは、単純なテキストファイルを、Javaコードを使用してFTPサーバーにアップロードしてエラーが発生することです。私はそれを働かせるように努力していますが、それをすることはできません。以下はコードです。FTPサーバーにファイルをアップロード中に例外が発生する
File file = new File("testFile.txt");
FileOutputStream fo = new FileOutputStream(file);
PrintStream ps = new PrintStream(fo);
ps.println("BLA");
ps.close();`enter code here`
fo.close();
uploadFile(file,file.getName());
public void upload(String ftpServer, String user, String password,
String fileName, FileInputStream is) throws MalformedURLException,
IOException
{
log("inside upload...........");
if (ftpServer != null && fileName != null && is != null)
{
StringBuffer sb = new StringBuffer("ftp://");
// check for authentication else assume its anonymous access.
if (user != null && password != null)
{
sb.append(user);
sb.append(':');
sb.append(password);
sb.append('@');
}
sb.append(ftpServer);
sb.append('/');
sb.append(fileName);
/*
* type ==> a=ASCII mode, i=image (binary) mode, d= file directory
* listing
*/
sb.append(";type=i");
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try
{
URL url = new URL(sb.toString());
URLConnection urlc = url.openConnection();
log("urlc::1 "+urlc);
bos = new BufferedOutputStream(urlc.getOutputStream());
log("bos:: "+bos);
bis = new BufferedInputStream(is);
int i;
// read byte by byte until end of stream
while ((i = bis.read()) != -1)
{
log("i"+i);
bos.write(i);
}
}
finally
{
if (bis != null)
try
{
bis.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
if (bos != null)
try
{
bos.close();
}
catch (IOException ioe)
{
ioe.printStackTrace();
}
}
}
else
{
log("Input not available.");
}
}
詳細については、私はjava.netのインポートを使用しています。
私は取得していますエラー:
Exception e is :: java.io.IOException: illegal filename for a PUT
at sun.net.www.protocol.ftp.FtpURLConnection.getOutputStream(Unknown Source)
at ToolFileUpload.upload(ToolFileUpload.java:72)
at APInterfaceTool.uploadFile(APInterfaceTool.java:861)
at APInterfaceTool.createInvoiceTextFile(APInterfaceTool.java:613)
at APInterfaceTool.generateOutBoundExtract(APInterfaceTool.java:426)
'java.io.IOException:PUTの不正なファイル名' は、ファイルがヌルか名前の長さが '0'の場合に発生します。これらの行でデバッグします。 – Dilawar
問題はFTPサーバーにあることがわかりました。私は他のFTPサーバーで同じコードを試して、うまく動作します。あなたの助けをよろしくお願いします。 –