Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Konzeptfrage: Dateien auf einer Website hochladen (https://www.delphipraxis.net/111974-konzeptfrage-dateien-auf-einer-website-hochladen.html)

Matze 12. Apr 2008 13:35


Konzeptfrage: Dateien auf einer Website hochladen
 
Hallo,

mein Problem kann man mit einem kurzen Titel nicht vernünftig beschreiben, daher der etwas abgespeckte. *g*

Bei meinem Wiki kann man Dateien hochladen und in Einträgen einbinden. Bisher hatte ich es so umgesetzt, dass nach dem Hochladen der Datei-Hash angezeigt wird und man einen Code dieser Art [file:5cda85e2b35561b98ebc7942075c8c723d4b04d8] einbinden muss, um einen Verweis auf die Datei zu erzeugen. An und für sich ist das ja nicht so schlecht, doch das Problem dabei ist, dass das ganze nicht mehr vernünftig funktioniert, sobald man die Datei aktualisiert. Denn dann müsste man sämtliche Inhalte aktualisieren.

Besser wäre es wohl, die ID mitzugeben ([file:123]), doch da habe ich das Problem, dass ich während des Verfassens noch nicht weiß, welche ID eine hochgeladene Datei haben wird, da ich den Verweis auf diese Datei erst dann in die DB schreibe, wenn ein Beitrag auch wirklich abgesendet wird. Davor ergibt es auch keinen Sinn, denn es kann ja mal sein, dass man einen Beitrag doch nicht absenden möchte (dann habe ich nur eine überflüssige Datei auf dem Server, aber keine überflüssigen Einträge in der Datenbank).
Und eine ID irgendwie zu reservieren wird nicht möglich sein, denn das müsste ich irgendwie mit den Sessions verkuddeln und dann funktioniert das "auto-increment" der Datenbank auch nicht mehr. Das scheidet also schon mal aus.

Wie würdet ihr denn das umsetzen? Ich bin da momentan ein wenig überfragt.

Realisiert ist das alles mit PHP und MySQL.

Grüße

Edit: Vermutlich werde ich den DB-Eintrag dann doch direkt nach dem Hochladen der Datei erstellen. Was anderes fällt mir absolut nicht ein.

Ghostwalker 12. Apr 2008 15:31

Re: Konzeptfrage: Dateien auf einer Website hochladen
 
Warum machst du das nicht über eine Transaktion auf der Datenbank ? Du legst quasi die ID an, beim Hochladen, bearbeitest dann deinen Beitrag. Wenn du den Beitrag absendest machst du einen commit, ansonsten einen rollback (z.B. beim Session-timeout).

Matze 12. Apr 2008 15:50

Re: Konzeptfrage: Dateien auf einer Website hochladen
 
Danke. Ach das geht wieder mit den Transaktionen. Ich glaube, langsam muss ich mich da wirklich mal tiefer einarbeiten. Scheint schon sehr komfortabel zu sein.

Klaus01 12. Apr 2008 16:17

Re: Konzeptfrage: Dateien auf einer Website hochladen
 
Hallo Matze,

könntest Du nicht für die Dateien die noch nicht commited wurden
eine TemporäreID vergeben, wenn dann der Beitrag "abgeschickt"
wurde die Temp.ID durch die SystemID ersetzen.

Grüße
Klaus

Matze 12. Apr 2008 16:39

Re: Konzeptfrage: Dateien auf einer Website hochladen
 
Hallo Klaus!

Wie meinst du das genau?

Momentan ist es so, dass die ID dann durch das Auto-Increment erzeugt wird, wenn ein Eintrag abgesendet wurde. D.h. ich müsste diese ID "reservieren" und das geht eigentlich ja nicht. Eine temporäre ID würde da auch nichts bringen, wenn ich das richtig verstanden habe.

Ich denke, das einfachste ist wirklich, den Datensatz beim Hochladen anzulegen, bis ich mir die Transaktionen mal näher angesehen habe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz