Dateidatum beim Upload

Hallo zusammen,

Ich möchte gerne, dass das originale Dateidatum beim Upload erhalten bleibt. Natürlich ist interessant, wann man ein Dokument in Dolibarr hochgeladen hat. Aber das eigentliche Dateidatum zu verlieren beraubt einen doch einer wichtigen Sortiermöglichkeit. Ist das ohne Eingriff in den Quelltext möglich?

Mit Grüßen

Kannst du etwas näher ausführen was du damit meinst und wofür du das brauchst? Ich nehme an du meinst das Erstell- und Änderungsdatum unter z.B. Windows. Da wirst du meines Wissens nach nicht drumherum kommen das manuell irgendwo nachzuhalten. Das sind Metadaten von deinem Dateisystem, die natürlich beim kopieren (uploaden) der Datei auf den Server verloren gehen. Die hochgeladene Datei ist quasie nur noch eine Kopie in einem neuen Dateisystem, die dann entsprechend auch neue Metadaten enthält, sprich ein neues Erstell- und Änderungsdatum.

Die hochgeladene Datei ist keine Kopie und insofern auch keine neue Instanz der Datei, sondern das Original. Die Datei wird in die Cloud zu Dolibarr bewegt. Es besteht kein Anlass, das Datum zu ändern bzw. zu setzen. Andere Cloudlösungen wie z.B. Nextcloud schaffen es auch, das Originaldatum zu erhalten. Ist das per Schalter in der Config wählbar oder muss ich mir den Quelltext ansehen?

Mit Grüßen

Hi!

nur für mein Verständnis. Was ist dann eine hochgeladene Datei wenn keine Kopie?
Interessant wäre auch die Erklärung an welcher Stelle Dateien hochgeladen werden und von welchem Datum ist überhaupt die Rede? Erstellungsdatum, Änderungsdatum? Letzter Zugriff Datum?

Also einen Schalter zum Thema “Datum” von hochgeladenen Dateien gibt es mit Sicherheit nicht.

Mit Eingriffen in den Code kann man bestimmt abstellen das Dolibarr Präfixe an Dateien anhängt aber sich Quelltext anzuschauen hilft auf jeden Fall das System besser zu verstehen.

VG

Du hast mich mißverstanden. Ob die Datei die du hochladen möchtest ein Original ist oder nicht, ist irrelevant. Aus technischer Sicht ist die resultierende Datei nach einem Upload immer eine neue Kopie. Und damit hat sie auch immer den Uploadzeitpunkt als neue Metadaten für “Erstellt” und “Letzte Änderung” das kannst du nicht ändern! Wenn die diese Daten deines Originaldokuments auch auf der Kopie nachhalten möchtest, musst du diese extra irgendwo, manuell einpflegen.

1 „Gefällt mir“

Erstens geht es um den Anwender, nicht um den Admin. Mit welchem Dateidatum hat der Anwender zu tun? Er sieht das Änderungsdatum der Datei.
Zweitens wird bei keinem System das Änderungsdatum einer Datei verändert, nur weil man sie kopiert, weder unter Windows noch Mac noch Linux.
Man könnte anführen, dass die Datei ja in Dolibarr, also auf einem anderen System neu erzeugt wird. Das ändert aber nichts an der Tatsache, dass der Inhalt der Datei zu einem bestimmten Datum zuletzt geändert wurde und dieses Datum als Information erhalten bleiben sollte.
Gruß

Ok nochmal etwas detaillierter: Wenn du eine Datei von Ordner A in Ordner B auf deinem Windows PC kopierst erstellst du eine Kopie im gleichen Dateisystem mit einem neuen Erstellungsdatum, Windows kann hier typischerweise die Metadaten aus dem eigenen Dateisystem für die Kopie übernehmen, sodass dein Änderungsdatum erhalten bleibt. Das funktioniert z.B. idR auch, wenn du in einem Netzwerk Dateien hin und her kopierst.

Wenn du allerdings eine Datei über z.B. FTP auf einen Server hochlädts hängt es hier z.B. von dem zur Übertragung genutzten Programm und dem Dateisystem auf dem Server ab, ob und welche dieser Metadaten übernommen werden können. Es kann sein, dass das Änderungsdatum erhalten bleibt, ist aber nicht immer sichergestellt. Und zwar deshalbt nicht, weil es kein Teil deiner Datei ist, sondern zusätzliche Attribute zu dieser Datei, die von deinem Dateisystem verwaltet werden. Diese Attribute müssen also zusätzlich zur eigentlichen Datei übertragen und dann bei deiner hochgeladenen Kopie wieder eingesetzt werden.

Wenn du jetzt aber eine Datei in einer Webapp die in PHP programmiert wurde - wie Dolibarr - hochlädtst, gehen diese Metadaten verloren. Die PHP Dateiübertragung nimmt diese Daten mWn nicht auf und kann diese nicht übertragen. Du müsstest diese also manuell einsetzen.

[EDIT]
Letzteres stimmt nicht ganz, du musst das nicht zwangsläufig manuell setzen. Man könnte es z.B. über Javascript auslesen, ein verstecktes Input Feld mit dem Formular senden und dann nach dem Upload in der Kopie auf dem Server das last modified Attribute entsprechend dieses Upload feldes anpassen.

1 „Gefällt mir“

kann @SDNS nur zustimmen. Solange Daten in einem Dateisystem hin und her kopiert werden, kann das “Änderungsdatum” meist erhalten bleiben.
Sobald man aber von einem Linux zu einem Windows -System oder umgekehrt kopiert gehen diese Daten verloren und es wird das aktuelle Datum als Änderungsdatum gesetzt.

Über ein Skript auszulesen funktioniert - würde die Datenübertragung bei vielen Dateien aber sehr bremsen.

Also ich denke schon das man das umsetzen kann.
Allerdings nicht ohne Eingriff im Sourcecode…

Im Browser (Client) kann man das Änderungsdatum einer Datei per Javascript auslesen und als hidden POST-Parameter an das Formular anhängen.
Stichwort: HTML DOM Document lastModified

In Dolibarr (Server) liest man den POST-Parameter und setzt das Datum des Uploadfiles entsprechend, oder hängt das an den Dateinamen an, oder schreibt das in ein Extrafield.

2 „Gefällt mir“

Das es geht hab ich ja in meinem letzten Edit ja angedeutet. Der Sinn ist für mich aber fragwürdig, da dieses Datum nur zum Uploadzeitpunkt mit dem tatsächlichen Datum der Original-Datei übereinstimmen wird und bei jeder Änderung danach nicht mehr. Oder gibt es einen zwingen einzuhaltenden Workflow in dem diese Dateien nach jeder Änderung neu hochgeladen werden? Kann mir nicht vorstellen, dass das - selbst in Kleinstunternehmen - dauerhaft so gehandhabt werden wird.

Je nachdem um was für Dateien/Daten es sich handelt wäre ggfs besser Entwicklungszeit in ein eigenes Modul zu stecken, mit dem man dann Objekte mit den benötigten Daten erstellen und bei Bedarf hiervon PDFs erzeugen kann. Wie in anderen Dolibarr Modulen auch. Das ist - in einfacher Form in der erstmal nur “dumme” Daten gespeichert werden müssen, über den ModuleBuilder sogar relativ einfach möglich, selbst mit sehr begrenzten Programmierkenntnissen. Hat den Vorteil das diese Daten dann auch anderen Dolibarr Modulen zur Verfügung stehen.

1 „Gefällt mir“