How to serve any file type with Python's BaseHTTPRequestHandler

后端 未结 3 1299
醉酒成梦
醉酒成梦 2021-02-13 21:06

Consider the following example:

import string,cgi,time
from os import curdir, sep
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer

class MyHandler(         


        
相关标签:
3条回答
  • 2021-02-13 21:40

    Pass binary as a parameter to open(). This:

    f = open(curdir + sep + self.path, 'rb')
    

    Instead of this:

    f = open(curdir + sep + self.path)
    

    UNIX doesn't distinguish between binary and text, but windows does. But if the script executes on UNIX, the "b" will just be ignored so you're safe.

    0 讨论(0)
  • 2021-02-13 21:49

    Your line would work just fine. The problem would be setting the Content-type appropriately. You'd want to set it to application/zip instead of text/html.

    0 讨论(0)
  • 2021-02-13 21:52

    If you want to share files in a folder of any type, then you can also try typing the command

    python -m SimpleHTTPServer
    

    This will start the server at port 8000 and you can browse the files (via directory listing)

    0 讨论(0)
提交回复
热议问题