0

単純なHTTPリクエストを処理するためにPythonを使用して単純なWebサーバーを開発したいと考えています。私はHTMLページの転送や他のファイルの転送など、リクエストにどのように応答するかを学びました。私は、画像ファイルを転送すると、クライアントがファイルを取得するには、ブラウザを使用して、URLは以下のようなものです:pythonで開発されたWebサーバ、画像ファイルの転送方法、Webブラウザで表示することができますか?

http://114.212.82.104:8080/1.png 

私は、「コンテンツタイプ=アプリケーション/ X-PNG」を設定します。しかし、ブラウザは直接ファイルをダウンロードし、ブラウザに表示することはできません。以下の画像と異なります。

https://www.baidu.com/img/bd_logo1.png 

ブラウザに表示することができます。ブラウザに画像を表示するには? 誰かが私を助けることができますか?

と私はそれを修正するために画像ファイルをHTMLページにエンコードすることができます知っている。以下のようなコード:

class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): 

    def do_GET(self): 
     path = os.getcwd()+ self.path 
     if os.path.isfile(path): 
      with open(path,'rb') as fileTrans: 
       content = fileTrans.read().encode('base64').replace('\n','') 
      #self.sendContent(200, content) 
      self.send_response(200) 
      page = "<p>\"fef\"</p><img src=\"data:image/jpg;base64,{0}\"/>" 
      contentPage = page.format(content) 
      self.send_header('Content-Type', 'text/html') 
      self.send_header("Content-Length", str(len(contentPage))) 
      self.end_headers() 
      self.wfile.write(contentPage) 

     else: 
      self.sendContent(404,"file do not exists") 

しかし、私は別の方法がなければならない、私はURL(https://www.baidu.com/)のソースコードを参照してください知っている それはちょうど私のページと異なる

<img hidefocus="true" src="//www.baidu.com/img/bd_logo1.png" width="270" height="129"></div><a href="/" id="result_logo" onmousedown="return c({'fm':'tab','tab':'logo'})"> 

を使用します。

<p>"fef"</p><img src="data:image/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAAcIAAAJYCAIAAAB+b3GqAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAvppVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTMyIDc5LjE1OTI4NCwgMjAxNi8wNC8xOS0xMzoxMzo0MCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODg3NkM1Njg1MzVFMTFFNkE0NkJFNTEzMUFCNzc4RTMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODg3NkM1Njc1MzVFMTFFNkE0NkJFNTEzMUFCNzc4RTMiIHhtcDpDcmVhdG9yVG9vbD0iOC4xLjMiPiA8eG1wTU06RG...... 

答えて

0

OK、私はこの問題を解決したと思います。 ヘッダーの 'Content-Type'属性を 'application/x-png'ではなく 'image/png'に設定するだけです。

関連する問題