的方法如下:
import os
from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
class RequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers['Content-Length'])
file_data = self.rfile.read(content_length)
# 获取文件名
file_name = self.headers['filename']
# 保存文件到磁盘
with open(file_name, 'wb') as file:
file.write(file_data)
self.send_response(200)
self.end_headers()
self.wfile.write('File saved successfully.')
def run(server_class=HTTPServer, handler_class=RequestHandler, port=8000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print('Starting server on port %d...' % port)
httpd.serve_forever()
run()
这样,当有POST请求发送到服务器时,服务器会将请求中的文件保存到磁盘上,而不会将文件存储在内存中。
这个方法适用于需要处理大文件或者大量文件的场景,可以避免内存占用过高的问题。
推荐的腾讯云相关产品:对象存储(COS),详情请参考腾讯云对象存储(COS)。
领取专属 10元无门槛券
手把手带您无忧上云