1
public static void main(String[] args) {
String SFTPHOST = "10.20.30.40";
int SFTPPORT = 22;
String SFTPUSER = "username";
String SFTPPASS = "password";
String SFTPWORKINGDIR = "/export/home/kodehelp/";
Session session = null;
Channel channel = null;
ChannelSftp channelSftp = null;
try{
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd(SFTPWORKINGDIR);
URL url = new URL("https://65.media.tumblr.com/839a07990f2b1ffa32065513c6224493/tumblr_oe6t3aYpHc1qfilt7o1_500.jpg");
BufferedImage image = null;
image = ImageIO.read(url);
**File f = new File(FILETOTRANSFER);
channelSftp.put(new FileInputStream(f), f.getName());**
}catch(Exception ex){
ex.printStackTrace();
}
}
SFTPサーバーに画像を保存する方法がわかりません。私は、この2行の代わりに書き込むかについて混乱しています私はSFTPで接続するためにJSCHライブラリを使用していますSFTPサーバーに画像を保存するには
File f = new File(FILETOTRANSFER);
channelSftp.put(new FileInputStream(f), f.getName());
最後の行channelSftp.put(url.openStream()、path.substring(path.lastIndexOf( '/')))); エラー "Permission Denied"が返されます。しかし、私はpath.substring(path.lastIndexOf( '/'))を "1.jpg"に変更しました。 ありがとうございます。 –
私はpath.substring(path.lastIndexOf( '/'))が動作しない理由を理解しました。 "/"から始まる部分文字列を与えるためです。そして画像(またはファイル)名は "/"から始まらない。 –
@ParthPatelです。 'lastIndexOf'の戻り値に' + 1'を加えることができます。私は答えを更新しました。 –