Ошибка «AttributeError: объект unicode не имеет атрибута« read »» при загрузке файла - PullRequest
5 голосов
/ 11 октября 2010

Я использую Pylons для загрузки изображения и сохранения его на диске:

 <form method="post">
 <input type="file" name="picture" enctype="multipart/form-data" />
 </form>

Затем в моем контроллере:

 if 'picture' in request.POST:

     i = ImageHandler()

     #Returns full path of image file
     picture_file = i.makePath()

     shutil.copyfileobj(request.POST['picture'],picture_file)

Но я получаю ошибку: AttributeError: 'unicode 'объект не имеет атрибута' read '

Что здесь происходит?Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 11 октября 2010

Оба аргумента для copyfileobj теперь являются строками, в то время как эта функция принимает файлы (или «файловые объекты») в качестве аргументов.Сделайте что-то вроде

 picture_file = open(i.makePath(), 'w')

(или просто picture_file = i, не знаете, каков ваш класс ImageHandler), затем

 shutil.copyfileobj(request.POST['picture'].file, picture_file)
...