2010-10-11 11 views
5

Używam Pylons przesłać obraz i zapisać go na dysku:Error „AttributeError:«unicode»obiekt ma bez atrybutu«czytać»” w pliku przesłać

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

Wtedy w moim kontrolera:

if 'picture' in request.POST: 

    i = ImageHandler() 

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

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

Ale otrzymuję błąd: AttributeError: „unicode” obiekt ma atrybut „czytać”

Co tu się dzieje? Dzięki za pomoc.

Odpowiedz

3

Oba argumenty do copyfileobj są teraz ciągami, podczas gdy funkcje te pobierają pliki (lub "obiekty podobne do plików") jako argumenty. Czy coś podobnego

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

(lub po prostu picture_file = i, nie wiem, co klasa ImageHandler jest podobne), następnie

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

Dzięki. Nadal mam ten sam błąd. Czy to może być problem z moim pierwszym argumentem? Lub jest request.POST ["obraz"], jak jest? – ensnare

+0

Właśnie poprawiłem swoją odpowiedź. –

+0

To jest takie dziwne, kiedy to robię, otrzymuję: AttributeError: obiekt 'unicode' nie ma atrybutu 'file' – ensnare

Powiązane problemy