Я сохраняю загруженные изображения на FTP. Служба FTP работает на сервере Server-A
. Фактическая проблема заключается в том, когда я хочу видеть загруженное изображение из веб-приложения, работающего на моем локальном хосте, все работает, но когда я развертываю локальное приложение в Tomcat, запущенном на том же сервере Server-A
, изображения отображаются неправильно.Загрузка FTP скачана неправильно Отображается
Изображение при запуске веб-приложения в локальной Tomcat:
Та же картина, когда я запускаю веб-приложения в удаленном сервере Tomcat:
Вы можете см., что второе изображение отображается неправильно. Также хочу упомянуть, что FTP тот же.
Я использую Spring с библиотекой Apache FtpClient для загрузки и загрузки изображений.
исходный код контроллера:
@RequestMapping(value = "/{id:\\d+}/image", method = RequestMethod.GET, produces = MediaType.IMAGE_JPEG_VALUE)
protected byte[] getUserImage(BaseForm form,
@PathVariable("id") int userId) {
try {
User user = checkToken(form.getToken());
log.info("https://stackoverflow.com/users/{id}/image [GET]. User: " + user + ", form: " + form + ", User id: " + userId);
FileWrapper image = service.getUserImage(userId);
if(image != null) {
return ftpService.downloadFtpFile(image.getName());
}
}
catch(Exception e) {
log.error(e.getMessage(), e);
}
return null;
}
FtpService исходный код:
public byte[] downloadFtpFile(String filePath) throws IOException {
FTPClient client = new FTPClient();
try {
client.connect(host, port);
if(!client.login(username, password)) {
throw new AdminException("Invalid ftp username/password");
}
client.enterLocalPassiveMode();
try(ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
client.retrieveFile(filePath, outputStream);
return outputStream.toByteArray();
}
}
catch(Exception e) {
log.error(e.getMessage(), e);
}
finally {
if(client.isConnected()) {
client.logout();
client.disconnect();
}
}
return null;
}
Заранее спасибо!
Вы проверили, что именно в файлах? – lexicore
Файл тот же самый в одном FTP. В одном случае я загружаю файл из веб-приложения, работающего на моем локальном компьютере (он работает), но во втором случае я загружаю тот же файл из веб-приложения, запущенного на удаленном компьютере, где находится служба FTP (этот файл не правильно распределяется). – 0bj3ct
Сравните файлы, которые вы получаете на локальном и удаленном Tomcat. Очевидно, второй - брок, вопрос в чем разница. Возможно, файл усечен или, возможно, некоторые байты испорчены. – lexicore