Я использую os.system для вызова внешней программы (Apache Batik), которая преобразует svg-данные в образ. Затем я хотел бы загрузить изображение на диск пользователя.Очистить stdout в Python CGI после os.system
Но всякий раз, когда я называю CGI с Apache, я получаю ошибку:
malformed header from script. Bad header=About to transcode 1 SVG file
То есть стандартный вывод из команды os.system, поэтому после поиска я обнаружил, что я мог бы использовать sys.stdout.flush()
, чтобы решить эту проблему но, к сожалению, он по-прежнему дает ту же ошибку. Вот сценарий:
import os
import cgi
import sys
arg = cgi.FieldStorage()
os.system('java -Djava.awt.headless=true -jar "batik-1.7/batik-rasterizer.jar" "pythonchart.svg"')
sys.stdout.flush() //NOT WORKING, STILL THE SAME ERROR
print "Content-Type: image/png"
print "Content-Disposition: attachment; filename=pythonchart.png"
print
print open("pythonchart.png","rb").read()