2010-10-11 3 views
5

sto usando Piloni per caricare un'immagine e memorizzarla su disco:errore "AttributeError: 'unicode' oggetto non ha l'attributo 'letta'" sul file di caricamento

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

Poi, nel mio controller:

if 'picture' in request.POST: 

    i = ImageHandler() 

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

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

Ma ho visualizzato l'errore: AttributeError: 'unicode' oggetto non ha attributo 'leggere'

cosa sta succedendo qui? Grazie per l'aiuto.

risposta

3

Entrambi gli argomenti su copyfileobj sono ora stringhe, mentre quelle funzioni portano i file (o "oggetti simili a file") come argomenti. Fare qualcosa di simile

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

(o semplicemente picture_file = i, non so cosa la classe ImageHandler è come), poi

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

Grazie. Ho ancora lo stesso errore, però. Potrebbe essere un problema con il mio primo argomento? O è request.POST ['immagine'] corretta come è? – ensnare

+0

Ho appena rivisto la mia risposta. –

+0

Questo è così strano, quando lo faccio, ottengo: AttributeError: l'oggetto 'unicode' non ha attributo 'file' – ensnare