Использование Python, библиотеки подушек и компьютерной графики для загрузки файлов

Мне было трудно импортировать Image и CGI вместе. Итак, в основном я хочу загрузить изображение GIF, а затем отобразить вывод, который является миниатюрой изображения. Я получаю кучу ошибок. Я не могу использовать из PIL import Pillow и cgi одновременно. Вот код ниже. Ваша помощь высоко ценится. Я провел часы и часы исследований и не могу понять это. Я получаю эту ошибку: конец вывода скрипта перед заголовками: save_file.py

#!C:\Anaconda3\python.exe
from PIL import Image
import cgi, os
import cgitb; cgitb.enable() #cgitb enabled for bug tracking purposes
try: # Windows needs stdio set for binary mode. 
    import msvcrt
    msvcrt.setmode (0, os.O_BINARY) # stdin  = 0
    msvcrt.setmode (1, os.O_BINARY) # stdout = 1
except ImportError:
    pass

form = cgi.FieldStorage()

# A nested FieldStorage instance holds the file
fileitem = form['file']


# 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)
   ext = fn[-3:]
   condi = 'gif'
   if ext == condi:
    open('tmpmedia/' + fn, 'wb').write(fileitem.file.read())
    message = 'The file "' + fn + '" was uploaded successfully'
    selectfunction = "Please select a function from below"
   else:
    message = 'You can only upload a gif image. No file was uploaded'
size = (128,128)
saved = "thumb.jpg"
infile = ('C:\\xampp\\htdocs\\aztec\\tmpmedia\\gif' + fn)
try:
    im = Image.open(infile)
except:
    print("Unable to load image")
im.thumbnail(size)
im.save(saved)
print ("Content-Type: text/html\n")
print ("<html>")
print("<body>")
print(message)
print("</body>")
print("</html>")

1 ответ

Я понял. В конце после html печати должен быть оператор try, а затем я бы использовал импорт из PIL. Image

Другие вопросы по тегам