`
meiping
  • 浏览: 47714 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

如何用CGI(C/C++)输出二进制内容

阅读更多

CGI输出文本文件已是司空见惯,输出二进制呢?你尝试过吗?

下面的代码演示在linux下想浏览器输出Excel文件

tt.cpp

#include <fstream>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
 
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include "stdio.h"
 
int main(int argc, char** argv)
{       
    // 输出Header
    char* header = "Content-Type: application/vnd.ms-excel\r\n"
                 "Content-Disposition: attachment; filename=\"support.xls\"\r\n"
                 "Expires: 0\r\n"
                 "Cache-Control: must-revalidate, post-check=0,pre-check=0\r\n"
                 "Pragma: public\r\n\r\n" ;
write(STDOUT_FILENO, header, strlen(header));
 
    int xls = open("array.xls", O_RDONLY);
    char buf[1024];
 
    size_t num;
    while ((num = read(xls, buf, 1024)) > 0)
    {
       write(STDOUT_FILENO, buf, num);
    }
    close(xls);
    return 0;
}
 

 

 

分享到:
评论

相关推荐

    c#+毕业设计+源码-civetweb:嵌入式C/C++Web服务器

    最终用户可以从SourceForge下载CivetWeb二进制文件/发行版 开发人员可以通过GitHub为CivetWeb做出贡献 由于CivetWeb必须与早期或更高版本一起使用(另请参见)。 故障票应在GitHub上归档 新版本将在Google网上论坛上...

    libhttp:多平台 HTTP 和 HTTPS 库

    该项目的任务是提供易于使用、功能强大、可嵌入 C/C++ 且支持 IPv6、CGI 和 SSL 的 Web 服务器。 LibHTTP 拥有 MIT 许可证,因此您可以不受限制地进行创新。 开发人员可以将 LibHTTP 用作库,将 Web 服务器功能添加...

    php5.5 zip 32位

    PHP 是一种新型的 CGI 程序编写语言,易学易用,运行速度快,可以方便快捷地编写出功能强大,运行速度快,并可同时运行于 Windows、Unix、Linux 平台的Web后台程序,...我们用自己的二进制文件,建立了Apache SAPIs。

    node-mapserv:Mapserver 的 `mapserv` CGI 程序的所有功能都可用于 Node.js

    node-mapserv最好被认为是 CGI mapserv的包装器:在内部它使用 C++ 绑定来刮掉代表二进制mapserv CGI 接口的薄层,用 javascript 接口替换它。 所有底层的mapserv逻辑和代码都保持不变。 node-mapserv不是用于 ...

    Python访问Mysql数据库

    Python 语言写的程序不需要编译成二进制代码,可以直接 从源代码运行程序。在计算机内部,Python 解释器把源代码 转换成称为字节码的中间形式,然后再把它翻译成计算机使用 的机器语言并运行。事实上,由于不再需要...

    PHP基础教程 是一个比较有价值的PHP新手教程!

    如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用...

    qr.cgi:Web QR代码生成器

    用于生成QR码的CGI二进制文件。 将其放在您的网络服务器上,将其指向浏览器,将小书签拖动到书签栏中,然后通过单击小书签为当前正在浏览的页面创建QR码(用于将链接传输到智能手机以继续浏览网页)。去)。 因为它...

    Python Cookbook

    2.12 将二进制数据发送到Windows的标准输出 77 2.13 使用C++的类iostream语法 78 2.14 回退输入文件到起点 80 2.15 用类文件对象适配真实文件对象 83 2.16 遍历目录树 84 2.17 在目录树中改变文件扩展名 85 ...

    网管教程 从入门到精通软件篇.txt

    BIN:二进制文件 BINHex:苹果的一种编码格式 BMP:Windows或OS/2位图文件 BOOK:Adobe FrameMaker Book文件 BOX:Lotus Notes的邮箱文件 BPL:Borlard Delph 4打包库 BSP:Quake图形文件 BUN:CakeWalk 声音...

    RED HAT LINUX 6大全

    本书内容翔实、涉及领域广泛,并且提供了详细的例子和大量的参考资料(包括书籍、电子文档和Internet站点),是一本学习、使用和管理Linux不可多得的好书。 目 录 译者序 前言 第一部分 Red Hat Linux的介绍与安装 ...

    IIS6.0 IIS,互联网信息服务

    需要注意的是,如果你要用一个IP地址对应多个不同的FTP服务器,则只能用使用不同的端口号的方法来实现,而不支持“主机头名”的做法。 对于已建立好的FTP服务器,在浏览器中访问将使用如“ftp://192.168.0.1”或是...

    Delphi5开发人员指南

    8.4.4 用TCanvas输出文字 189 8.5 坐标系统和映射模式 193 8.5.1 设备坐标系 193 8.5.2 逻辑坐标系 194 8.5.3 屏幕坐标系 194 8.5.4 窗体坐标系 194 8.5.5 坐标映射 195 8.5.6 设置映射模式 196 8.5.7 设置窗口/视区...

Global site tag (gtag.js) - Google Analytics