CGI显示Python代码而不是在浏览器中运行

时间:2019-12-11 10:14:29

标签: python-3.x google-chrome google-chrome-extension xampp cgi

我无法在名为'file.py'的python中执行CGI脚本。我希望从用户处输入一个excel文件作为输入(为此使用html表单),然后运行CGI确认文件是否已上传。但是,而是显示了整个Python代码。

使用 Xampp,Python 3.7 和Chrome浏览器。我将HTML放入Xampp的htdocs中,并将 file.py 放入Xampp的 cgi-bin 中。

我已经更改了字段的所有必需参数,例如Option,ScriptAlias,AddHandler。

这是我接受HTML文件的HTML代码行:

<form name="search" action="C:/xampp/cgi-bin/file.py" enctype = "multipart/form-data"    method="get" >

           <input type="file" name="filename" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
           <input type="submit" value="Submit">
</form>

这是file.py的内容:(我尝试先打印一个简单的“ Hello”,而不是 message 变量,以查看是否有效,但无效)

#!\usr\bin\python

#!C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Python3.7

print "Content-Type: text/html; charset=utf-8\n\n";
import cgi, os
import cgitb; cgitb.enable()

form = cgi.FieldStorage()

# Get filename here.
fileitem = form['filename']

# Test if the file was uploaded
if fileitem.filename:
   # strip leading path from file name to avoid 
   # directory traversal attacks
   fn = os.path.basename(fileitem.filename)
   open('/tmp/' + fn, 'wb').write(fileitem.file.read())

   message = 'The file "' + fn + '" was uploaded successfully'

else:
   message = 'No file was uploaded'

print """\
Content-Type: text/html\n; charset=utf-8\n\n;
<html>
<body>
   <p>%s</p>
</body>
</html>
""" % ("Helloooo")

0 个答案:

没有答案