Python BaseHTTPServer CGIHTTPServer

Я пытаюсь реализовать простой HTTP-сервер с формой, позволяющей пользователю загрузить файл.

У меня есть три файла кода: - скрипт Python, создающий веб-сервер с BaseHTTPServer и CGIHTTPServer - файл HTML с моей формой - еще один скрипт Python, связанный с этой формой

Веб сервер:

#!/usr/bin/env python
# coding: utf-8


import BaseHTTPServer
import CGIHTTPServer

import cgitb; cgitb.enable() # enable CGI error reporting

PORT = 8000
server_address = ('', PORT)

server = BaseHTTPServer.HTTPServer
handler = CGIHTTPServer.CGIHTTPRequestHandler 
handler.cgi_directories = ['cgi-bin']


httpd = server(server_address, handler)

httpd.serve_forever()

index.html:

<html>
<body>
  <form enctype="multipart/form-data"
        action="save_file.py" method="POST">
    <p>File: <input type="file" name="filename"/></p>
    <p><input type="submit" value="Send"/></p>
  </form>
</body>
</html>

save_file.py (внутри папки cgi-bin):

#!/usr/bin/env python
# coding: utf-8

import cgi, os
import cgitb; cgitb.enable()

form = cgi.FieldStorage()

# Get filename
fileitem = form['filename']

# Test if file uploaded
if fileitem.filename:
    message = 'ok'   
else:
    message = 'No file was uploaded'


print "Content-type: text/html"
print ""
print """
<html>
<body>
  <p> %s </p
</body>
</html>
""" % message

Я могу запустить сервер, но когда я нажимаю Отправить для отправки, после (или нет), выбрав файл, у меня появляется следующее сообщение об ошибке:

Ошибка ответа

Код ошибки 501.

Сообщение: Может только POST в CGI скрипты.

Объяснение кода ошибки: 501 = Сервер не поддерживает эту операцию.

0 ответов

Другие вопросы по тегам