从HTML表单接收不可靠输入的CGI脚本:为什么?

2024-09-20 22:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

在服务器上,通过HTML或HTML文件上传到Python cgi脚本的文本量有限制吗?你知道吗

我试图通过网页上传一个包含5000个10位数字的列表(模拟一个用于网络分析的电话号码列表)到我的CGI脚本中进行处理。但是客户机-服务器关系是不可靠的。有时CGI脚本接收所有5000个数字,但有时只接收其中的一部分。服务器和CGI脚本都没有抛出一个异常:CGI脚本只是认为只发送了2800个(或其他)项目,而不是实际发送的5000个。你知道吗

我不知道是什么导致了这一切。当我将网页上的输入法更改为input type='textarea'并仅剪切和粘贴数据时,同样的不可预测性也会发生。我试着添加时间。睡眠()在CGI脚本中的不同地方暂停,但似乎没有什么东西对它产生持续的积极或消极影响。我每次都使用相同的样本数据集。你知道吗

客户机和服务器都在我的笔记本电脑(127.0.0.1:80)上,服务器上没有其他任何东西在运行。服务器代码、HTML前端和CGI脚本粘贴在下面。如果你有任何见解我将不胜感激!你知道吗

#SERVER#
#!python3
import os, sys
from http.server import HTTPServer, CGIHTTPRequestHandler
webdir = 'C:\(...)\webapps'
port   = 80
os.chdir(webdir)
srvraddr = ("", port)
srvrobj  = HTTPServer(srvraddr, CGIHTTPRequestHandler)
srvrobj.serve_forever()
print('ready to go')

<!--HTML FRONT END-->
<html>
<title>Interactive Page</title>
<body>
<p>
<form method=POST action = 'cgi-bin/cgi101_Jan.py' enctype="multipart/form-data">
<p>Select a file:
<input type = file name = upFile>
<p><input type = submit>
</form>
</body>

#CGI SCRIPT#
#!python3
import cgi
import cgitb
cgitb.enable()
form = cgi.FieldStorage()
upFile = form['upFile'].file
print('Content-type: text/html\n')
print('<title>Reply Page</title>')
fh = upFile.readlines()
for line in fh:
    print(str(line)+'<br>')

Tags: importform服务器脚本网页inputtitlehtml

热门问题