Guten Abend Rolf,
die Version siehst Du in der URL, bei jedem Update geht der Zähler eins hoch.
Danke!
FileAPI habe ich selbst noch nicht benutzt, es dient aber dazu, Dinge auf der Maschine des Anwenders zu speichern, nicht auf dem Server. Entspricht das deinen Zielen?
Wenn du mit Maschine Computer/Festplatte/Laufwerk meinst, dann ja!
Wenn Du die Anzahl der Bilder/Videos erhöhen oder verringern willst, ohne zu löschen, dann musst Du den Eventhandler etwas anders programmieren. Du musst zuerst prüfen, ob Du die Anzahl der Upload-Elemente erhöhen oder verringern musst (oder ob sie gleichbleibt, dann tust Du gar nichts). Wenn erhöhen, dann füge solange Elemente hinzu bis die Anzahl stimmt. Wenn verringern, dann entferne solange das letzte Element bis die Anzahl stimmt. Aber was machst Du, wenn Du die Bilder 3-5 behalten willst? Dann funktioniert das nicht mehr, dann sind die Anzahl-Dropdowns ein Irrweg. Deswegen sollte man, bevor man zu programmieren beginnt, eine Vision haben, wie das Gesamtsystem ausieht, oder zumindest ein minimal lebensfähiges Produkt (minimal viable product, MVP) im Auge haben. Und sich über alle Operationen im Klaren sein, die man da ausführen will. Und sich ständig fragen: Gibt mein UI her, was ich tun will?
Ich möchte den Fall mit 3-5 Bildern einfach mal ignorieren um so auf meine Vorstellung zu kommen. Das sind dann (denke ich) eher Kleinigkeiten bzw. die Feinheiten die es (wenn überhaupt) zum Schluss hin ausgebessert werden können.
Bisher haben wir nur über das C nachgedacht. Du kannst was anlegen, und irgendwann speichern. Du möchtest am nächsten Tag aber den Browser aufmachen und die gespeicherten Dinge wieder sehen. Du möchtest, dass Änderungen geändert bleiben und Löschungen gelöscht. Sowas setzt identifizierende Merkmale voraus. Identifizierend heißt: Es bleibt unveränderlich erhalten. Wenn Du einen Arbeitsplatz neu anlegst, braucht eine eine eindeutige ID. Wenn ein Bild hinzukommt, braucht es eine eindeutige ID. Ein Video auch. Wenn Du einen Arbeitsplatz löschst, wird seine ID nicht wiederverwendet, und die von ihm abhängigen Ressourcen (Bilder, Videos) müssen ebenfalls gelöscht werden. Wenn ein Bild/ein Video eine eindeutige ID hat, kannst du das Bild korrekt aus der Liste herauslöschen. Sonst nicht, bzw. löschst eventuell irgendwas, aber nicht das, was der User will.
Wenn ich nach dem Schema vorgehe ID = Nummer aus Arbeitsplatz (z.B. Arbeitsplatz 1) + Nummer aus Bild (z.B. Bild Nr. 5) => ID = 1-5 müsste ich doch eine eindeutige ID damit bezwecken können oder? Ich versuche die ganze Zeit schon irgendwie den Value von meinem counter-increment in JS auszulesen. Bekomme es aber nicht hin...aber müsste doch mit getComputedStyle machbar sein oder nicht?
Wenn Du ein serverloses System denkst, das mit File API arbeitet, machst Du das alles lokal im JavaScript und auf deiner Maschine, und hast das Problem konkurrierender Zugriffe nicht. Wenn Du mit einem Webserver arbeitest, dann übernimmt normalerweise der Server die Ablage und Organisation der Daten und Dateien. Und zwar eigenständig, auf Grund eines in PHP, Perl, Ruby, C#, Java oder sonstwie geschriebenen Programms (oder auch mit JavaScript, wenn Du node.js als Server nimmst, das ist aber deswegen nicht leichter). Vom Client aus die Ablage auf dem Server zu steuern, ihn also sozusagen nur als ferne Festplatte zu nutzen, mag mit HTTP Befehlen wie PUT und DELETE machbar sein, das muss aber entsprechend eingerichtet sein. Und vor allem kommt dann die Frage auf: Was ist, wenn zwei Leute die Anwendung gleichzeitig verwenden? PL hat das Ölkännchen gezückt und ist davongeflutscht, als ich diese Details seines Vorschlags herauslocken wollte. Aus gutem Grund. Da stecken nämlich viele Tretminen.
Ich weiß nicht ob es zu Probleme kommen sollte wenn die HTML Datei hier auf einem Laufwerk liegen würde und mehrere Benutzer gleichzeitig sie benutzen. Im Endeffekt sollen ja durch die Formular-Maske Ordner erstellt werden können und die Dateien in den passenden gespeichert werden. Geht es denn, dass die Dateien automatisch ein Namenskürzel vorangestellt bekommen von JS? Das z.B. wenn es eine .jpg Datei ist der Name automatisch zu JPG-Bild5-1.jpg wird?
Tja. Worauf will ich eigentlich hinaus? Ich möchte Dich dazu zwingen, den "kein serverseitiger Code" Ansatz sehr gut zu durchdenken. Diese Entscheidung hat gravierende Konsequenzen. Und ob dich durch ein Projekt, das dahin läuft, per Forenberatung hindurchbegleiten MÖCHTE, das weiß ich nicht recht. Der Aufwand wird jetzt schon sehr groß. Einige Teile der Lernkurve musst Du selbst erklimmen. Bei Detailproblemen kann man Dir helfen. Aber nicht bei jedem einzelnen Schritt.
Ich durchdenke es nochmal die Tage und weiß natürlich, dass ich selbst das Meiste selber schaffen muss. Ich sitze ja auch so oft es geht am Rechner und verfolge die Strategie Try and Error. Auf jeden Fall bin ich euch und dir ganz besonders extrem dankbar für die Mithilfe. Ich hab dadurch schon super viele Fortschritte gemacht und verstehe immer mehr davon.
Gruß, Jochbart