Найти - Пользователи
Полная версия: Бьются картинки
Начало » Web » Бьются картинки
1
Ekkertan
Проблема следующая:
при аплоаде файла .jpg при создании
cgiobj = cgi.FieldStorage()
получаю ошибку:
UnicodeDecodeError: 'charmap' codec can't decode byte 0x98 in position 2439: character maps to <undefined>
args = ('charmap', b'-----------------------------1361325320311\nCo...5\x18\xfa\x19 \x19E\x19k\x19\x91\x19\xb7\x19\xdd', 2439, 2440, 'character maps to <undefined>')
encoding = 'charmap'
end = 2440
object = b'-----------------------------1361325320311\nCo...5\x18\xfa\x19 \x19E\x19k\x19\x91\x19\xb7\x19\xdd'
reason = 'character maps to <undefined>'
start = 2439
with_traceback = <built-in method with_traceback of UnicodeDecodeError object>
Текстовые файлы уходят на “ура”, ничего не ломается.
Ощущение такое, что файлы бьются не скриптом, а апачем.
Форум читал. Винда, Апач 2.2.17, не русский, так что CharsetRecodeMultipartForms off не работает.

Или скриптом? Тогда как избежать этого ненужного декодирования?

Буду рад любым конструктивным предложениям/замечаниям
Ekkertan
Пробовал сделать то же самое средствами php - файлы отдаются корректно. Бинарные, текстовые - без разницы.
Т.е. проблема не в апаче.

Собственно код:
from html_function import *
from datetime import date
import cgi, os

fieldlist = ['disknumber', 'filmname', 'genre', 'annotation', 'director', 'actors', 'duration',\
'videoquality', 'audioquality', 'filmyear', 'cover', 'shot1', 'shot2', 'shot3']

try:
import cgitb
cgitb.enable()
except ImportError:
sys.stderr = sys.stdout

cgiobj = cgi.FieldStorage()
formdata = {key:"" for key in fieldlist}

print_html_header("Добавляем фильм", "http://videocatalog/style.css")

referer = os.environ['HTTP_REFERER']
if referer.endswith('add.py'): # Данные пришли от заполненной формы?
formdata = getformdata(cgiobj, formdata)
errorfields = validatedata(formdata)
if errorfields == []: # Ошибок в данных нет
pass #Заглушка: добавляем данные в базу
else:
print_add_form(formdata, errorfields, hidden=None)
else: # Считаем, что нажали кнопку "Добавить фильм" на странице index.py; выводим пустую форму
formdata['filmyear'] = date.today().year
print_add_form(formdata, hidden=None)

print('</body>\n</html>')
Мне кажется, это должно работать…
Если я где-то тут ступил - подскажите :rolleyes:
slav0nic
http://bugs.python.org/issue4953 теперь это твоя любимая ссылка :]
Ekkertan
О, slav0nic, спасибо.
Почитал. Мрачно :(
Если обобщить все, написанное в багтраке, то “Веруй, надейся, жди и юзай Python 2.4”

Пойду убьюсь об альфу 3.2
Если в ней все будет работать - отпишу
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB