Исполняемый файл как-то поврежден при копировании
Я использую Qt QNetworkAccessManager, чтобы загрузить файл с места (в настоящее время это локальный компьютер, но в будущем это будет HTTP-сервер) и временно сохранить его в файле TEMP (linux ubuntu). Проблема, которую я обнаружил, состоит в том, что файл (который является исполняемым файлом) повреждается в процессе: когда я пытаюсь запустить файл как исполняемый, он возвращает классическую ошибку проблемной кросс-компиляции.
Это интересно, потому что файл является исполняемым для встроенного Linux-устройства - я загружаю исполняемый файл в свой TEMP, чтобы позже отправить его на устройство. Когда это происходит (используя FileZilla), появляется следующее сообщение об ошибке:
./re8k_interface-tgt: строка 1: синтаксическая ошибка: неожиданное слово (ожидание ")")
Теперь я знаю, что оригинальный файл в порядке, скопировав его на устройство и запустив его, поэтому я знаю, что он как-то связан с процессом копирования файла, либо при загрузке, либо при записи в объект QFile. Вот как я делаю это сейчас:
//Call to download
QUrl ulrTemp("//" + downloadUrls[downloadStep].arg(ui->sbID->text()));
ulrTemp.setScheme("file");
qDebug() << "Downloading from" << ulrTemp;
poReply = downloadNetworkManager->get(QNetworkRequest(ulrTemp));
connect(poReply,SIGNAL(downloadProgress(qint64,qint64)),this,SLOT(slotTransferProgress(qint64,qint64)));
connect(poReply,SIGNAL(error(QNetworkReply::NetworkError)),this,SLOT(slotTransferError(QNetworkReply::NetworkError)));
//When finished
QByteArray downloadedData;
downloadedData = reply->readAll();
reply->deleteLater();
poReply->deleteLater();
static const QString tempFilePath = QDir::tempPath();
QFile file(tempFilePath + "/" + downloadNames[downloadStep]);
if (!file.open(QFile::WriteOnly | QFile::Truncate))
{
qDebug() << "Failure opening temp file to write: " << file.fileName();
return;
}
QDataStream stream(&file);
stream << downloadedData;
file.close();
PS: я знаю о необходимости настройки разрешений
Размер скопированного файла точно соответствует оригиналу. Так в чем же проблема, которую я не вижу?