У меня проблемы с выполнением CGI-скрипта на python с именем 'file.py' . Я хочу взять файл Excel в качестве ввода от пользователя (используя для этого HTML-форму) и запустить CGI, чтобы подтвердить, загружен ли файл. Но вместо этого отображается весь код Python.
Использование Xampp, Python 3.7 и браузера Chrome. Я поместил HTML-код в htdocs Xampp и file.py в cgi-bin Xampp
Я изменил все необходимые параметрытакие поля, как Options, ScriptAlias, AddHandler.
Вот моя строка кода HTML для приема файла Excel:
<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")