CGI показывает код Python вместо запуска его в браузере - PullRequest
0 голосов
/ 11 декабря 2019

У меня проблемы с выполнением 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")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...