2016-09-23 4 views
0

Ich rolle meinen eigenen Fileupload-Handler in Django und möchte den Dateinamen kennen. Ich unterstütze mehr als ein Dateiformat und möchte verschiedene Bearbeitungen in der receive_data_chunk Methode machen, abhängig davon, welches Dateiformat die hochgeladene Datei hat. Ich dachte, ich würde pragmatisch sein und nur das Dateiformat basierend auf der Dateiendung beurteilen, aber ich kann nicht herausfinden, wie ich den Dateinamen erreichen kann. Wenn ich versuche, die Dateinamen mit so etwas wie der folgenden Code zu extrahieren (bevor das Verfahren genannt wird):Ermitteln des Dateinamens in einem FileUploadHandler

if request.method == 'POST': 
     p = re.compile('^.*\.sdf$', re.IGNORECASE) 
     if (p.search(request.FILES['filecontent'].name)) : 
      self.sdf = True 
     else: 
      self.sdf = False 

Es scheint, dass ich nie die receive_data_chunk Methode erreichen. Ich nehme an, der Anruf an request.FILES löst das Laden irgendwie aus und dann ist es schon fertig? Wie kann ich unterschiedliche Verarbeitung basierend auf Dateiendung in meiner receive_data_chunk Methode machen?

Antwort

0

Haben Sie

data=request.POST.copy() 

und dann arbeiten auf der Kopie mit versucht? Ich habe das für andere Dinge benutzt, kann aber auch in diesem Fall funktionieren.

+0

Hm, interessant, heißt das, ich bekomme eine vollständige Kopie der ganzen Sache? Was bedeutet das, wenn ich eine Datei von sagen, ähm, 3 GB hochlade? – jonalv

+0

Das ist eine gute Frage! Ich glaube nicht, dass irgendwelche der Dateien, mit denen ich zu tun hatte, größer als ein paar MB max waren. – ElPedro

Verwandte Themen