2010-10-02 13 views
0

Je contrôle le problème des données téléchargées par la méthode POST, sur le Web. Si le fichier est un texte il n'y a pas de problème mais le problème vient quand il s'agit d'un fichier encodé, en tant qu'image ou autre. A quel moment le système insère les données dans le fichier. Eh bien, il n'est pas encodé correctement. Je vais mettre tout le code, ce qui est de la zone prendre l 'environnement [ « wsgi.input »] à la zone des thats enregistrer le fichier:Problème lors de l'enregistrement des fichiers téléchargés dans Python3

# Here the data from the environ['wsgi.input'], 
# first i convert the byte into a string delete the first 
# field that represent the b and after i strip the single quotes 
tmpData = str(rawData)[1:].strip("' '") 
dat = tmpData.split('\\r')#Then i split all the data in the '\\r' 
s = open('/home/hidura/test.png', 'w')#I open the test.png file. 
for cont in range(5,150):#Now beging in the 5th position to the 150th position 
s.write(dat[cont])#Insert the piece of the data in the file. 
s.close()#Then closed. 

Où est l'erreur?

Merci d'avance.

Répondre

1

Pourquoi convertir les données binaires en une chaîne? Un fichier png est des données binaires. Il suffit d'écrire les données binaires dans le fichier. Vous devez également ouvrir le fichier en mode binaire.

s = open('/home/hidura/test.png', 'wb') 
s.write(data)