On Wed, Jul 9, 2008 at 7:45 PM, tedd <tedd@xxxxxxxxxxxx> wrote: > Hi gang: > > Here's the logic problem. > > First the site: > > http://php1.net/b/zip-files/ > > Now, the site works well enough. The user selects what they want, clicks > Submit, the order is assembled in zip file and presented to the user for > downloading. > > However, as it stands now, before the script assembles the test.zip, it > deletes (unlinks) the previous test.zip and therein lies the problem. > > If two, or more, users hit the site at the same time then a RACE condition > may have one user getting something they didn't ask for or not getting > anything at all. > > The complicated way I figure I could solve this would be to: > > 1. Generate a random string name for the file -- instead of test.zip, it > could be ax12nhg34.zip. > > 2. Then when the user selects the download that would trigger a javascript > routine that would send the name of the file to be deleted to a slave php > script that would unlinks the file. > > I know this will work, but if the user never downloads the file, then the > files accumulate on the server. > > Does anyone have a better idea? > > Thanks, > > tedd > > -- > ------- > http://sperling.com http://ancientstones.com http://earthstones.com > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > Well this is sort of a question that can only be answered based on some answers such as, what will the request load be on this, how many theoretical files will this generate, just stuff like that. If you aren't worried about cpu load, you can probably use the streams api to make a zip file in memory and spit that out to the user without ever creating a file on demand. If you want this to be fast, then you need to cache zip files or pre-generate them to users and store them in some sort of sane filename based on selected options. This way there isn't randomly generated files being re-created for no reason. The other option is to just generate a random filename and cron-delete them after so long. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php