无法从后期输入中获取值字符串 - mod wsgi



我不知道为什么我不能使用 Apache24、mod wsgi 和以下 (Python 3.6.5( 代码从 html 输入中保存一个值(字符串(:

# -*- coding: UTF-8 -*-
import os
import sys
sys.path.append(os.path.dirname(__file__))
import urllib.parse
def application(environ, start_response):
    script_dir = os.path.dirname(__file__)
    f = open(os.path.join(script_dir, 'Wsgi_Apache.html'))
    output = f.read().encode('utf-8').strip()
    f.close()
    try:
        request_body_size = int(environ.get('CONTENT_LENGTH', 0))
    except (ValueError):
        request_body_size = 0
    request_body = environ['wsgi.input'].read(request_body_size)
    d = urllib.parse.parse_qs(request_body)
    #d = urllib.parse.parse_qs(environ['QUERY_STRING'])
    download = d.get('download', [''])[0]
    file = open(os.path.join(script_dir, 'down.txt'), 'w')
    file.write(download)
    file.close()
    status = '200 OK'
    response_headers = [('Content-type', 'text/html;charset=UTF-8'),
                    ('Content-Length', str(len(output)))]
    start_response(status, response_headers)
    return [output]

和 HTML 代码 (Wsgi_Apache.html(:

<!DOCTYPE html>
<html><body>
<form method="post" action="">
<input id="download" type="hidden" value="eijrgioerjboofphdpiappq" name="download">
</form>
</body>
</html>

已创建一个文件,但没有任何文本。 我想以 base64 的形式发送一个 pdf 的值...也许有更好的方法可以做到这一点?我知道这有点老技术,但我认为这是一个最简单的方法。

我发现urllib.parse.parse_qs(request_body(返回空字典... 我仍在尝试解决这个问题,但无法弄清楚为什么request_body没有价值。

最新更新