Comment faire pour obtenir l'extension d'un fichier dans Django?
Je suis en train de construire une application web en Django.
J'ai un formulaire qui envoie un fichier à views.py.
Vues:
@login_required(login_url=login_url)
def addCancion(request):
if request.method == 'POST':
form2 = UploadSong(request.POST, request.FILES)
if form2.is_valid():
if(handle_uploaded_song(request.FILES['file'])):
path = '%s' % (request.FILES['file'])
ruta = "http://domain.com/static/canciones/%s" % path
usuario = Usuario.objects.get(pk=request.session['persona'])
song = Cancion(autor=usuario, cancion=ruta)
song.save()
return HttpResponse(ruta)
else:
return HttpResponse("-3")
else:
return HttpResponse("-2")
else:
return HttpResponse("-1")
Je suis en train de télécharger uniquement les fichiers MP3, mais je ne sais pas comment faire de ce filtre.
J'ai essayé une classe nommée "ContentTypeRestrictedFileField(FileField):" et ne fonctionne pas.
Comment puis-je obtenir le type de fichier dans views.py?
Merci!
- Où est votre "content_type" variable en venir? Vous vous demandez juste.
- Désolé, C'est une erreur. Merci
Vous devez vous connecter pour publier un commentaire.
Vous pouvez également utiliser la méthode clean() de la forme, qui est utilisé pour la valider. Ainsi, vous pouvez refuser les dossiers qui ne sont pas en mp3. Quelque chose comme ceci:
avec
import mimetypes, magic
:vous donne l'extension '.pdf " par exemple
https://docs.djangoproject.com/en/dev/topics/forms/#processing-the-data-from-a-form
http://docs.python.org/2/library/mimetypes.html#mimetypes.MimeTypes.types_map_inv
https://github.com/ahupp/python-magic#usage
Vous dire ceci:
os.path.splitext(file)[1]
pour obtenir directement de la demande:
ou d'obtenir de l'extesion dans db - modèle.