Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript mod_wsgi:读取发布的文件内容仍为空_Javascript_Python_Ajax_Cgi_Wsgi - Fatal编程技术网

Javascript mod_wsgi:读取发布的文件内容仍为空

Javascript mod_wsgi:读取发布的文件内容仍为空,javascript,python,ajax,cgi,wsgi,Javascript,Python,Ajax,Cgi,Wsgi,我不明白,我不明白 在自行开发的PythonWeb框架中,我使用JavaScript向服务器发布了一个文件表单元素 var formData = new FormData(); formData.append('file', document.getElementById('file').files[0]); var request = new XMLHttpRequest(); request.open("POST", url, true); request.send(formData);

我不明白,我不明白

在自行开发的PythonWeb框架中,我使用JavaScript向服务器发布了一个文件表单元素

var formData = new FormData();
formData.append('file', document.getElementById('file').files[0]);
var request = new XMLHttpRequest();
request.open("POST", url, true);
request.send(formData);
服务器sporting mod_wsgi接收请求,如下所示:

if environ['REQUEST_METHOD'] == 'POST':
    post_env = environ.copy()
    post_env['QUERY_STRING'] = ''
    form = cgi.FieldStorage(
            fp=environ['wsgi.input'],
            environ=post_env,
            keep_blank_values=True) 
然后,当我想访问表单字段的内容以将其保存到文件时,以下内容将返回空结果:

form['file'].file.read()
(为了简单起见,所有代码都经过了编辑)

让我困惑的是表单字段将显示正确的文件名和MIME类型,只有
file.read()
保持为空

此外,来自其他输入文本字段的所有其他信息都可以通过并访问。 我还检查了
environ['REQUEST\u METHOD']
实际上是
POST


至于用于编码的HTTP头(例如
multipart/form data
),我认为
XMLHttpRequest
对象将在
formData.append()
收到一个文件输入作为值后处理这个问题。

好的,解决方案如下:

我无法解释,但文件表单字段在第一次读取时被清空,这是我偶然发现的。也许是个虫子,谁知道呢。 我假设它们会保持不变(像任何其他变量一样),并且可以多次读取

我忽略的是,事实上我已经多次向他们讲话。
因此,解决方案是首先将文件内容存储在一个变量中,然后多次使用该变量。

能否显示所需更改的代码段?谢谢