4 Stimmen

Django:Gibt es eine Möglichkeit, das Datum und den Namen der hochgeladenen Datei später zu erhalten?

Gibt es eine Möglichkeit, das Datum und den Namen der hochgeladenen Datei, die wir in der Datenbank gespeichert haben, über Formulare abzurufen? Im Moment erstelle ich gerade zwei weitere Datenbank-Tupel für name y date und speichert sie wie folgt
file_name = request.FILES['file'].name für Dateiname und Speicherdatum mit upload_date = datetime.datetime.now()

2voto

Pratik Mandrekar Punkte 8902

Sie können das Datum ermitteln, nachdem Sie die Metadaten der Datei mit dem Befehl stat Modul. http://docs.python.org/release/2.5.2/lib/module-stat.html

Sie ist betriebssystemspezifisch, aber ST_CTIME sollte Ihnen ungefähr das geben, wonach Sie suchen.

Der Name lässt sich leicht aus der Art und Weise ableiten, wie Sie Ihr Geschäft betreiben. Geben Sie einen benutzerdefinierten Handler an, der die Datei unter /your/file/path/filename.extension und manipulieren Sie einfach die Zeichenkette für den Dateinamen

Das habe ich gerade in den Flask-Dokumenten gelesen. Nicht sicher, wie viel es in Django anwendbar ist, aber Einfügen hier als Referenz

*Wenn Sie wissen möchten, wie die Datei auf dem Client benannt war, bevor sie in Ihre Anwendung hochgeladen wurde, können Sie auf das Attribut filename zugreifen. Beachten Sie jedoch, dass dieser Wert gefälscht werden kann, so dass Sie diesem Wert niemals vertrauen sollten. Wenn Sie den Dateinamen des Clients verwenden wollen, um die Datei auf dem Server zu speichern, übergeben Sie ihn mit der Funktion secure_filename(), die Werkzeug für Sie bereitstellt*

1voto

Lie Ryan Punkte 57966

Sie können den Namen der Originaldatei als Teil des Dateinamens verwenden, wenn Sie sie auf dem Datenträger speichern, und Sie können wahrscheinlich das Erstellungs-/Änderungsdatum der Datei für das Hochladedatum verwenden. IMO sollten Sie sie einfach explizit in der Datenbank speichern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X