Уведомления

Группа в Telegram: @pythonsu

#1 Май 13, 2014 21:23:06

adinvadim
Зарегистрирован: 2014-05-05
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

cgi.FieldStorage input type="file" проблема с загрузкой изображений

Всем привет, нужно загрузить изображения на сервер, бьюсь какую уже неделю на этой задаче. Проблема в том, что изображения грузятся не полностью остаются либо зеленые либо коричневые либо черные полосы, причем остается всегда по-разному, бывает вообще страница вылетает

def fbuffer(file, chunk_size=10000):
    while True:
        chunk = file.read(chunk_size)
        if not chunk:
            break
        yield chunk
form = cgi.FieldStorage(encoding='cp1251')
file_item = form['files']
if file_item.filename:
        f = open(album_path + '/' + file_item.filename, 'wb')
        for chunk in fbuffer(file_item.file):
                 f.write(chunk)
        f.close()

<form action="/cgi-bin/admin.py" method="POST" enctype="multipart/form-data">
<input name="files" type="file"/>
</form>

А сам сервер
C:\python33\python.exe -m http.server --cgi 8000

Картинки я прикрепил какие получаются, причем акие полосы начинают возникать, когда файл больше 100Кб, а 2 - 3 файла, точнее изображений, именно изображений вообще не загружает , максимум одно и наполовину

Отредактировано adinvadim (Май 13, 2014 21:24:43)

Прикреплённый файлы:
attachment pinup-hi-res-hd-wallpaper15.jpg (23,3 KБ)

Офлайн

#2 Май 15, 2014 19:19:55

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

cgi.FieldStorage input type="file" проблема с загрузкой изображений

Предположу, что нужно читать не файл, а поток.
https://docs.python.org/3.3/library/io.html
Пример реализации:
https://github.com/GoodCloud/django-ajax-uploader/blob/master/ajaxuploader/backends/local.py

С чем связан выбор cgi, когда кругом полно готовых фреймворков?

Отредактировано Alen (Май 15, 2014 19:22:47)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version