WindowsでXAMPPのApache上でphthonをCGIとして動かしています.
以下のようにサーバ上の画像を読み込んで画像としてレスポンスを返したいと思っていますが,
画像が破損してしまってうまく表示されません.

対応方法をご存知の方がもしいましたらご連絡いただけますと大変ありがたいです.
よろしくお願い致します.

#!C:\Python27\python.exe
# -*- coding: utf-8 -*-
print "Content-type: image/jpg"
print ""
print open("./img/test.jpg", "rb").read()

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/02/24 08:54:40
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント300pt

標準出力を、バイナリモードにする必要があるそうです。

#!C:\Python27\python.exe
# -*- coding: utf-8 -*-
import os, msvcrt
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)
print "Content-type: image/jpeg"
print ""
print open("./img/test.jpg", "rb").read()

Content-type も jpeg にしています。

参考URL :
http://d.hatena.ne.jp/rage2050/20091022
http://code.activestate.com/recipes/65443/
http://stackoverflow.com/questions/4060339/python-cgi-serves-distorted-images

id:rockafeller

早速のご回答ありがとうございました.
以下のようにすることで無事画像が表示されました.

#!C:\Python27\python.exe
# -*- coding: utf-8 -*-
import os, msvcrt, sys

if sys.platform == "win32":
msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY)

print "Content-type: image/jpeg"
print ""
print open("./img/cat.jpg", "rb").read()

2015/02/24 08:54:25

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません