2010-12-02 8 views
0

python(2.6)cgiを使用してWindows(apache)にmimeデータを表示する際に問題が発生しました。 image.pywindows + apacheでpython cgiを使用してmimeデータを表示する方法

 
#!E:/program files/Python26/python.exe 
# -*- coding: UTF-8 -*- 
data = open('logo.png','rb').read() 
print 'Content-Type:image/png;Content-Disposition:attachment;filename=logo.png\n' 
print data 

が、Windowsで(XPまたは7)+ ApacheまたはIISを動作しない用量: はたとえば、画像を表示するために、ここに私のコードです。 (私はこれらのコードを別の方法で書こうとしますが、他のファイル形式、jpgとrarも試してみますが、正しい出力はありません)。

これらのコードをテストしますlinux + apacheで、それはOKです!

 
#!/usr/bin/env python 
# -*- coding: UTF-8 -*- 
data = open('logo.png','rb').read() 
print 'Content-Type:image/png;Content-Disposition:attachment;filename=logo.png\n' 
print data 

なぜそれがWindowsでうまくいかないのか分かりません。誰も私に助けやアドバイスをくれませんか?

答えて

0

今私は、この問題を解決する方法を知っている:

  • 窓+ IISの場合: アプリケーションマッピング(IIS)を追加する際に、C:\Python20\python.exe -u %s %sを書きます。私はこのような書き込みを使用してc:\Python26\python.exe %s %s、それは間違ったmimeデータを作成します。また、 "-u"は、バッファされていないバイナリstdoutとstderrを意味します。
  • Windows + Apacheの場合: #!E:/program files/Python26/python.exe -uをpythonスクリプトの最初の行に追加します。

Ignacio Vazquez-Abramsにも感謝します!

2

各ヘッダーの間に改行が1つあります。ヘッダーと本文の間に2つの改行があります。あなたの行末を見てください。

print 'Content-Type:image/png' 
print 'Content-Disposition:attachment;filename=logo.png' 
print 
+0

ありがとうございました。しかし、私はこのような文章をたくさん試していましたが、 '/ n'または '/ r/n'を 'attachment'と一緒に使うこともできますが、コンピュータ(中国語)ですべて失敗しました。私はあなたのコンピュータ上でこれをうまくテストしているのだろうか?私はこれがWindowsシステムの問題だと思う。 –

+0

これは私の問題を解決しました。Ignacioに感謝します! – Ian

関連する問題