У меня есть небольшой python cgi script, который принимает загрузку изображения от пользователя, преобразует его в другой формат и сохраняет новый файл в временном расположении. Я бы хотел, чтобы он автоматически запросил пользователя загрузить преобразованный файл. Я пробовал:
# image conversion stuff....
print "Content-Type: image/eps\n" #have also tried application/postscript, and application/eps
print "Content-Disposition: attachment; filename=%s\n" % new_filename #have tried with and without this...
print open(converted_file_fullpath).read()
print
Я также пробовал:
print "Location: /path/to/tmp/location/%s" % new_filename
print
Мой браузер либо загружает script.cgi
, либо script.cgi.ps
. Любая помощь приветствуется.
Я не уверен, но вы пытались отделить фактические данные от заголовков с помощью новой строки? EDIT: запись print "\n"
выводит две строки новой строки, поэтому я думаю, что это должно быть написано так:
print "Content-Type: image/eps"
print "Content-Disposition: attachment; filename=%s" % new_filename
print
print open(converted_file_fullpath).read()
Предполагая, что new_filename
имеет некоторое разумное значение, я не вижу, что здесь не так.
script.cgi
...: - /
new_filename
является правильным значением: - /
Оказывается, вы можете использовать заголовок Location
для этого, но он работал только для меня с абсолютной ссылкой. Таким образом,
print 'Location: http://example.com/path/to/tmp/location/%s' % new_filename
print
Я знаю, спецификация cgi говорит, что относительные ссылки должны работать для внутренних переадресаций, но это то, что сработало для меня...