如何将inputstream转换为InputStreamsource或Datasource以在Spring JavaMail中附加

时间:2012-11-05 18:34:23

标签: spring javamail inputstream sftp jsch

我从Jsch channelSFTP获取输入流,如下所示。

   ChannelSftp channelSftp = (ChannelSftp)channel;
   InputStream input=channelsftp.get(unixPath);//unixPath is path to my file which is on SFTP server

我必须将文件附加在Spring javaMail附件中的unixPath中。但是,当我看到Spring JavaMail addAttachment()方法的API时,它只需要InputStreamSourceDatasource。 我的问题是我无法从inputStream中获取InputStreamSourceDatasource,我从SFTP频道获取该内容。如何从上面获取InputStreamSourceDatasource InputStream的?提前致谢。

1 个答案:

答案 0 :(得分:25)

从文档中,InputStreamSource是一个界面。它的一个实现是InputStreamResource,它有一个接收InputStream的构造函数。 Here is the JavaDoc for it

你应该能够设置你的电话:

addAttachment("Not porn", new InputStreamResource(inputStream));