我想要做的是使用 java 代码将一个简单的文本文件上传到 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)