【发布时间】:2015-08-22 22:18:45
【问题描述】:
我从 sqlite 数据库中检索了二进制数据,现在我有了指向二进制数据 (sqlite3_column_blob) 的指针。如何使用 C cgi 脚本将此数据输出到客户端?
char *sql = "SELECT Data FROM Images WHERE Id = 1";
sqlite3_stmt *pStmt;
rc = sqlite3_prepare_v2(db, sql, -1, &pStmt, 0);
if (rc != SQLITE_OK ) {
fprintf(stderr, "Failed to prepare statement\n");
fprintf(stderr, "Cannot open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return 1;
}
rc = sqlite3_step(pStmt);
int bytes = 0;
if (rc == SQLITE_ROW) {
bytes = sqlite3_column_bytes(pStmt, 0);
}
// >>>>next row is function to save file but I want output binary data to client<<<<
fwrite(sqlite3_column_blob(pStmt, 0), bytes, 1, fp);
【问题讨论】:
-
你知道你的blob字段的真实格式吗?因此,您可以将数据转换为所需的结构并发送/显示您想要的内容。
-
您好! BLOB 数据是 jpeg 图像,因此我需要将这些字节输出到客户端,而无需将标头设置为 image/jpeg。
-
你的客户是什么?一个简单的接口,一个socket连接的东西……
-
应该是APACHE下的c cgi脚本