Назад | Перейти на главную страницу

Сохранение изображений, загруженных в форму на сервере с использованием python cgi

Я хочу иметь возможность сохранять изображение из html-формы на диск сервера с помощью скрипта Python CGI. Сервер уже настроен для запуска скриптов Python CGI, и я получаю только «500 Internal server error» для этого скрипта.

HTML-код:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Test form</title>
</head>
<body>
<form action="../cgi-bin/save_image.py" action="post">
    <fieldset>
        <legend>This is a test form</legend>
        <label>Plik</label>
    <input type="file" name="image" />
    <input type="submit" value="Submit" />
</body>
</html>

Это мой код на python save_image.py:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

import os
import cgi


form = cgi.FieldStorage
image = form.getvalue('image')

if image.filename:
    fn = os.path.basename(image.filename)
    open("/tmp/" + fn, 'wb').write(image.file.read())
    message = "File " + fn + "got sucessfully submited"
else:
    message = "Failed to submit the file"

print("Content-type:text/html\r\n\r\n")
print('<html>')
print('<head>')
print('<title>File saving</title>')
print('</head>')
print('<body>')
print('<h1> '+ message + '</h1>')
print('</body>')
print('</html>')

Все файлы и каталоги имеют 755 разрешений, и ошибка, которую я получаю в error.log, гласит: «Конец вывода скрипта перед заголовками», так что я предполагаю, что что-то не так со скриптом python, но я понятия не имею, что именно. Заранее спасибо!