![]() |
[php] files uploaden advanced
Ik heb een wizard gemaakt in PHP die gebruikers helpt bij het aanmaken van artikelen in een online tijdschrift. De wizard is debiel-proof, dus ik ga er van uit dat hij halverwege kan worden gestopt door mensen die erachter komen dat hun floppy met plaatjes nog thuisligt, etc.
Verder kunnen meerdere gebruikers tegelijkertijd de wizard runnen uiteraard. De wizard kan op dit moment tekst etc. allemaal opslaan in een array, en die pas helemaal aan het eind, als de wizard klaar is, wegschrijven naar de database. Op die manier kan er vrijwel niks misgaan met users die tegelijkertijd dezelfde artikelnummers enzo overschrijven. PROBLEEM: Ik zou het liefst bestanden ook op zo'n manier laten uploaden. Dus 1 voor 1 netjes uploaden in de wizard, maar pas "echt" op de server zetten als de wizard compleet is. Als de wizard niet afgemaakt wordt moeten de bestanden verdwijnen. Oplossingen die ik had bedacht maar ik niet kan uitvoeren wegens technische onkunde: - files als temporary files laten staan en pas cp'en naar de echte dir aan het eind van de wizard (lukt me niet, moet ik dan de link "vasthouden" ofzo?) - files opslaan als gigantische arrays in php en die op de een of andere manier naar files schrijven (jaja...) help! |
Nou, wegschrijven naar een database kun je schijnbaar al. Je zou die bestanden tijdelijk kunnen opslaan in een database (een tabel met bv de columns id, sessieid, bestand, bestandsnaam, filetype en datum). Als de wizardsessie afgesloten wordt schrijf je ze weg naar disk.
|
Maar wanneer de gebruiker dan de wizard afsluit staat mijn tabel vol met temporary bestanden die ik er nooit meer uitkrijg...
Ik heb ondertussen de opbouw van de wizard zo veranderd dat hij 1 voor 1 de plaatjes wegschrijft (zoals scholieren.com!) en dat werkt een stuk praktischer. |
Citaat:
schrijf ze daar naartoe als ze uploaden maar nog niet klaar zijn.. als hij halverwege wordt afgesloten, gebeurt er op dat moment niets. dan ga je een scriptje om de 24 u ofzo uitvoeren die alle bestanden daar verwijdert. |
Citaat:
|
Ja, dat lijkt me te gek. Maar ik host de site niet zelf, laat het voor me doen (bij van-weert.nl) en ik vraag me af of die de moeite nemen zoiets te installeren. Als iemand nog een hele te gekke host weet binnen een studentenbudget met PHP en MySQL hou ik me aanbevolen.
|
Wat ook kan is bij iedere nieuwe sessie even checken of vorige sessies afgerond zijn. Zo niet kun je de boel verwijderen.
|
Citaat:
Specificaties:
|
Jon: hoe kan ik checken of sessies afgerond zijn of niet? Dat klinkt precies zoals ik het bedoel eigenlijk... :)
|
Citaat:
Elke request zorgt ervoor dat de SID wordt gecontrolleert met het IP adres, en dat de timestamp wordt ververst, mits deze minder dan 30 minuten oud is. Na 30 minuten is er dus een session timeout. Dit zou je ook kunnen controlleren. Per IP, ingelogde gebruiker, of SID als je die weet. |
Alle tijden zijn GMT +1. Het is nu 11:26. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.