2014-11-29 2 views
1

Я пытаюсь отобразить текст/html/css/images в моем браузере с помощью веб-сервера python. Но работает только css/text/html. Кто-нибудь знает, почему изображения не отображаются?Не удается отобразить изображения webserver python

Вот мой код:

import urlparse 

from socket import * 

s = socket(AF_INET, SOCK_STREAM) 

port = 8080 

s.bind(('', port)) 
s.listen(1) 

#Fill in end 

while True: 
client, addr = s.accept() 

try: 
    data = client.recv(1024) 
    filename = data.split()[1] 

    file = open(filename[1:]) 

    outputdata = file.read() 

    client.send('\nHTTP/1.x200OK\n') 

    for i in range(0, len(outputdata)): 
     client.send(outputdata[i]) 

    client.close() 

except IOError: 
    client.send('\n404 File Not Found\n') 

    client.close() 

s.close() 

Спасибо!

+0

может быть кучей вещей, является ли путь к изображениям действительным? у вас есть html, отображающий изображение по умолчанию, чтобы вы знали, есть ли проблема? – Drewdin

+0

Почему вы отправляете байт результата байтом? 'Content-Type' необходим для изображений. – Daniel

+0

Попробуйте говорить HTTP, а не какой-то странный протокол, который похож на HTTP только несколькими способами. –

ответ

1

Возможно, проблема заключается в том, что вы не устанавливаете правильные заголовки HTTP (Content-Type, Content-Length и т. Д.). Вместо того, чтобы повторно внедрять этот материал с нуля, почему бы не использовать одну из многих веб-фреймворков Python, которая позаботится обо всем этом для вас?

+0

Я уже делал это раньше с использованием класса httpserver на основе python. Но я хотел все сделать сам сейчас. – user3485470

+0

Должен ли я установить contentlength/type в outputdata? – user3485470

Смежные вопросы