Si un serveur HTTP écrit en Python2.6 a un accès local à un fichier, quelle serait la meilleure façon pour ce serveur de renvoyer le fichier à un client, sur demande?Comment envoyer un fichier via HTTP, la bonne façon, en utilisant Python?
Disons que c'est la situation actuelle:
header('Content-Type', file.mimetype)
header('Content-Length', file.size) # file size in bytes
header('Content-MD5', file.hash) # an md5 hash of the entire file
return open(file.path).read()
Tous les fichiers sont des archives .zip ou .rar pas plus gros que quelques méga-octets.
Dans la situation actuelle, les navigateurs gèrent bizarrement le téléchargement entrant. Aucun navigateur ne connaît le nom du fichier, par exemple, ils utilisent donc un nom aléatoire ou par défaut. (Firefox a même enregistré le fichier avec une extension .part, même si elle était complète et complètement utilisable.)
Quel serait le meilleur moyen de résoudre ce problème et d'autres erreurs dont je ne suis peut-être même pas conscient, pour le moment?
Quels sont les en-têtes que je n'envoie pas?
Merci!
"Aucun navigateur ne connaît le nom du fichier, par exemple, ils utilisent donc un nom aléatoire ou par défaut." L'en-tête Content-Disposition gère cela, non? - http://www.ietf.org/rfc/rfc2183.txt – rnicholson