0

간단한 HTTP 요청을 처리하기 위해 Python을 사용하여 간단한 웹 서버를 개발하고 싶습니다. html 페이지를 전송하거나 다른 파일을 전송하는 것과 같이 요청에 응답하는 방법을 배웠습니다. 나는 이미지 파일을 전송할 때, 클라이언트가 파일을 얻을 수있는 브라우저를 사용하는 URL은 다음과 같다 :python으로 개발 된 웹 서버, 이미지 파일을 전송하는 방법, 웹 브라우저에 표시 할 수 있습니까?

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") 

하지만 난 그냥 내 페이지에서 다른

<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'})"> 

를 사용, 내가 URL (https://www.baidu.com/) 의 소스 코드를 볼 수있는 또 다른 방법이 있어야합니다 알고 : 코드를 아래와 같이

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

답변

0

좋아요, 나는이 문제를 해결했다고 생각합니다. 헤더의 'Content-Type'속성을 'application/x-png'대신 'image/png'로 설정하면됩니다.