QString path = "my.file";
//QString zipcmd = QString("tar -czf %1.tar.gz %1").arg(path);
//int err = system(zipcmd.toUtf8().data());
// path += ".tar.gz";
QFile file(path);
if (!err && QFile::exists(path) && file.open(QIODevice::ReadOnly)) {
body = file.readAll();
file.close();
status = QHttpResponse::STATUS_ACCEPTED;
}
我是如何处理回复的:
$http({ method: 'GET', url: 'myurl', respponseType: 'blob' })
.then(function success(response) {
var blob = new Blob([response.data],{type: 'application/octet-stream', charset: 'charset=utf-8'});
var url = URL.createObjectURL(blob);
var a = document.createElement('a');
a.download = "myfilename";
a.href = url;
a.click();
});
当我发送简单的文本文件时,每件事都可以。
但是当我尝试将相同的文件打包到tar.gz时,我收到的数据不正确。我尝试使用toBase64
和atob
,将respponseType
更改为arraybuffer
和MIME类型,但没有成功。
AngularJS 1.4.9和Qt 5.4。任何帮助,将不胜感激。 也许有另一种方式来传输文件?