の出力をキャプチャして、後で閲覧できるようにファイルに書き込もうとしていますが、期待どおりに動作していないようですcgi.print_form()
。cgi.print_environ()
これはモジュールの出力を指定されたパスに単純に書き込むことを期待していますが、得られるのはcgi.print_form()
出力がページに表示され、 からは何も表示されずcgi.print_environ()
、formpath
ファイルは空で、envpath
ファイルは作成されません。
モジュールをラップするとstr()
、None
両方のファイルに入ります。
これは、リモートでホストされているフォームから何が得られるかを確認するための簡単なテストであるはずでしたが、うまくいきません。
それはpython 2.7.2です
formfile = open(formpath, 'w')
formfile.write(cgi.print_form(form))
formfile.close()
envfile = open(envpath, 'w')
envfile.write(cgi.print_environ())
envfile.close()
編集: 独自のループを作成することにしましたがprint_form
、print_environ
関数の出力をキャプチャする方法をまだ探しています。
for item in form:
key = form.getfirst(item)
fileitem = form[item]
if fileitem.filename:
formfile.write("%s is file %s\n" % (item, fileitem.filename))
filepath = '../fmtmp/%s_%s_%s' % (tstamp, item, fileitem.filename)
open(filepath, 'w').write(fileitem.file.read())
else:
formfile.write("%s = %s\n" % (item, key))
formfile.close()
envfile = open(envpath, 'w')
for var in os.environ:
envfile.write("%s = %s\n" % (var, os.environ[var]))
envfile.close()
これにより、アップロードされたものをファイルとして保存できるというメリットが追加されました。