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-сервере. Я смущен о том, что писать вместо этого две строкиСохранение изображений на сервер SFTP с использованием java
File f = new File(FILETOTRANSFER);
channelSftp.put(new FileInputStream(f), f.getName());
Я использую библиотеку JSch, чтобы связаться с SFTP
Последняя строка channelSftp.put (url.openStream(), path.substring (путь.lastIndexOf ('/'))); дать ошибку «Разрешение отказано». Но когда я сменил path.substring (путь.lastIndexOf ('/')) на «1.jpg», то его работа великолепна. Спасибо, что помогли. –
Я понял, почему path.substring (path.lastIndexOf ('/')) не работает. Потому что он дает подстроку, начинающуюся с «/». И имя изображения (или файла) никогда не начинается с «/». –
@ParthPatel я вижу. Вы можете добавить '+ 1' к возвращаемому значению' lastIndexOf'. Я обновил ответ. –