使用弹簧将文件直接上传到ftp服务器中的特定文件夹

时间:2014-07-11 09:37:45

标签: ftp spring-integration

我认为,我有新手问题,但事实上我是春天框架中的新手。 我如何上传文件,例如'上传'文件夹位于我的ftp服务器的根目录中? 我试过这个: 我的应用程序上下文文件:

<bean id="ftpClientFactory"
        class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
    <property name="host" value="127.0.0.1"/>
    <property name="username" value="test"/>
    <property name="password" value="test"/>
    <property name="clientMode" value="0"/>
    <property name="fileType" value="2"/>
    <property name="bufferSize" value="10000"/>                 
</bean>

<int:channel id="ftpChannel"/>

<int-ftp:outbound-channel-adapter id="outFtpAdapter"
                                channel="ftpChannel"
                                session-factory="ftpClientFactory"
                                remote-directory="/Users/test"/>

和我的java代码:

ConfigurableApplicationContext context = 
            new FileSystemXmlApplicationContext("/src/citrus/resources/citrus-context.xml");
    MessageChannel ftpChannel = context.getBean("ftpChannel", MessageChannel.class);
    File file = new File("/Users/test/test.txt");
    Message<File> fileMessage = MessageBuilder.withPayload(file).build();
    ftpChannel.send(fileMessage);
    context.close();

但是这个例子将文件上传到根目录。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用FTPClient上传MultipartFiles到apache FTP服务器 useful repo 希望这对以后的搜索有所帮助。

答案 1 :(得分:1)

我刚测试过并且效果很好:

<int-ftp:outbound-channel-adapter
                id="sendFileToServer"
                auto-create-directory="true"
                session-factory="ftpSessionFactory"
                remote-directory="/Users/test"/>

我的FTP服务器是嵌入式服务器,其根目录是:

[MY_USER_HOME]\Temp\junit7944189423444999123\FtpServerOutboundTests\

所以文件存储在目录中:

[MY_USER_HOME]\Temp\junit7944189423444999123\FtpServerOutboundTests\Users\test\

使用最新的Spring Integration版本。

您的版本是哪个?