从CGI生成的程序发送stdout作为响应

0 投票
1 回答
895 浏览
提问于 2025-04-15 17:56

我正在尝试在一个CGI程序中生成一个.zip文件,并将其作为内容响应发送出去。但是我遇到了问题,每当我启动一个程序并让它输出到标准输出(stdout)时,Apache似乎无法接受这个输出。这个问题似乎和启动一个写入标准输出的程序有关。下面的代码片段展示了这个问题。我总是会收到Apache的以下错误信息:

malformed header from script. Bad header=hello world  

print ("Content-Type: text/html");  
print ("");  
#print ("hello world");     <-----This works  
os.system("echo hello world");  <-----This doesn't work

如果我只是从我的CGI脚本中打印一个字符串,这个过程就能正常工作。如果我在命令行中运行它,行为也没有区别。那么,我需要做些什么特别的事情才能让启动的程序的标准输出作为我的响应呢?

1 个回答

1

在调用外部程序之前,可以试试 sys.stdout.flush() 这个命令。

撰写回答