Код: Выделить всё
/**
* Sube un archivo al servidor remoto. Si no se puede subir lanza una excepción.
*
* @param ftpsClient El cliente FTPS que se utilizará para cargar el archivo.
* @param file El archivo que se desea cargar.
* @param fileName El nombre del archivo que se desea cargar.
*/
@Override
public void uploadByteArrayAsFile(FTPSClient ftpsClient, byte[] file, String fileName) {
try (InputStream inputStream = new ByteArrayInputStream(file)) {
boolean success = ftpsClient.storeFile(remotePath + fileName, inputStream);
if (!success) {
throw new IOException("Failed to upload file: " + fileName);
}
log.info("Archivo cargado byte con éxito.");
} catch (IOException e) {
log.error("Error al cargar el archivo byte.", e);
throw new RuntimeException(e);
}
}
Проблема: загруженный файл повреждается, а массив байтов загруженного файла отличается от исходного.
Устранение неполадок Попытка: сравнение массивов байтов до и после загрузки.
Рассмотренные потенциальные причины: неправильный режим передачи, проблемы с двоичным режимом, проблемы с кодированием данных или ошибки обработки потока.
Дополнительно. Примечания:
Файл содержит двоичные данные и должен быть передан в двоичном режиме.
Ожидается, что метод storeFile будет передавать данные напрямую без изменений, но могут возникнуть проблемы с кодированием. или преобразование данных.
Может ли кто-нибудь дать рекомендации по обеспечению целостности данных во время загрузки или предложить альтернативные подходы для обеспечения согласованности байтов?
Подробнее здесь: https://stackoverflow.com/questions/791 ... upted-file
Мобильная версия