我不明白为什么我无法使用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>
已创建文件,但没有任何文本。 我想以值的形式发送pdf作为base64 ...也许有更好的方法吗?我知道这是一种较旧的技术,但我认为这是最简单的方法。
答案 0 :(得分:0)
我发现 urllib.parse.parse_qs(request_body)返回空字典... 我仍在尝试解决此问题,但不知道为什么 request_body 中没有任何价值。