2012-01-12 11 views
0

IIS上でpython cgiを使用してブラウザにpngイメージを返そうとしています。IIS上でpython cgi経由でpngを返す

私はこれと同じ問題だ: Return an image to the browser in python, cgi-bin

をそこ提供ソリューションは、私のマシンでは動作しません。ここで

は私の状況を簡単にイントロです:

  1. 私はC上のPNGイメージを持っている:\ログ\ demo.png、この画像は絶対に大丈夫ですし、視覚的な画像ビューアで開くことができます。

  2. 私は以下のコードでPythonスクリプトを持っている:

print 'HTTP/1.1 200 OK' 
print 'Content-Type:image/png\n' 
print file('c:\\logs\\demo.png', 'rb').read() 

3。対応するURLにアクセスすると何も返されず、画像にエラーが含まれているとFireFoxに報告します。レスポンスで返される長さも非常に小さいです。

問題についてご意見はありますか?私はクレイジー〜

どれ返信が高く評価されて取得しています:)

+0

printは物事を正確に保存しません。まず、ファイルデータの後に改行を追加します。 sys.stdout.write()を使用して、あなたが意味するものを正確に書いていることを確認します。編集:また、どのくらい離れて応答のサイズ - ファイルの大きさと報告された応答サイズは何ですか? FirefoxとIISはそれに同意しますか? – AdamKG

+0

sys.stdout.write()も動作しません。ここでの出力と同じです。画像は約40KBですが、応答は約1KBです。 – taijirobot

+0

と奇妙なことは、私はsys.stdout.writeを使った別のスクリプトで、この書き込みは40KBのコンテンツを返すが、まだ画像は表示されないということです。ヘッダーとコンテンツの間の2つの改行を二重チェックしました。 – taijirobot

答えて

0

問題は解決しました。

最後に、IIS構成でエラーが見つかりました。

拡張子マッピングは次のようになります。

c:\Python27\python.exe -u "%s" "%s" 

-uは時々問題

以下の記事は、コンフィギュレーションのために役に立つかもしれませんが発生する可能性がありますキャリッジリターン/改行の組み合わせに変換されてから改行を防ぐことができます。非常に詳細で明確です。 http://python.net4geeks.com/iiswse.asp

関連する問題