You'd need to do some amount of renaming anyway to get rid of spaces and other nasty characters.
2010/1/18 Jevon Wright <[email protected]>: > Do you need to keep "dogs.jpg" as the filename? What if you renamed it to a > number? Then plan #1 might work well. > > Jevon > > On Mon, Jan 18, 2010 at 3:23 PM, matt_thomson <[email protected]> wrote: >> >> Hi All, >> >> Thanks for the help with the last problem, I got another one I have >> been thinking about for a while, and can't come up with a good >> solution. Essentially it is how to organize up to tens of thousands of >> files in folders, so there isn't too many files in one folder, but the >> database knows where the files are, currently the situation is like >> this: >> >> 3 files, dogs.jpg, cats.jpg and birds.jpg get put in the "uploaded" >> folder, and 3 database records get written: >> >> id | gallery_id | filename >> 1 1 dogs.jpg >> 2 1 cats.jpg >> 3 1 birds.jpg >> >> The when the gallery with an id of one gets displayed, the images >> resized/dogs_600_800.jpg, resized/cats_600_800.jpg, resized/ >> birds_600_800.jpg get made (800 by 600 are the max width and height >> settings for gallery 1). >> >> I also want to have a "copy gallery" function, which adds a row to the >> gallery table that is a duplicate of gallery 1, except it is called >> "copy of gallery 1" and has a new id. The copy gallery function would >> do this to the image table: >> id | gallery_id | filename >> 1 1 dogs.jpg >> 2 1 cats.jpg >> 3 1 birds.jpg >> 4 2 dogs.jpg >> 5 2 cats.jpg >> 6 2 birds.jpg >> >> Now I could change the width and height of gallery 2 to 400 and 300, >> and when gallery 2 gets viewed, resized/dogs_300_400.jpg, resized/ >> cats_300_400.jpg, resized/birds_300_400.jpg get made. >> >> This all works great, until 10,000 images are added, and the >> 'uploaded' and 'resized' get so big they are not manageable if you >> want to ftp and find an image, and they will eventually slow the >> server down. >> >> Possible solutions I have so far: >> 1.)Make folders based on the first letter/number of the filename, >> splits the files into 36 folders (or 36x36 if first and second >> character).This is good as any row in the database knows where the >> uploaded file is (when it makes resized images), because it knows the >> filename. Downside: someone uploads thousands of images from a camera >> that lables the images dsc_0001, dsc_0002, dsc_0003.... >> >> 2.)Make folders based on id in database. (eg 0-100 folder, 101-200 >> folder). Good side, keeps right amount of images in folder. Downside, >> when you copy a gallery, the new records don't know where to look for >> the uploaded image. >> >> 3.)For every upload, check the size of the latest folder, and if it is >> too big, make a new folder. For every database record write the path >> of the image including the folder and file path. When image records >> are copied, this full path will get copied too. Downside, a lot of >> time working out the latest folder, and size of the folder each time >> you upload a file. >> >> Does anyone have any smarter ideas on how to organize the files? >> >> Thanks, >> >> Matt. -- Chris Hope The Electric Toolbox Ltd Email: [email protected] Web: www.electrictoolbox.com Phone: +64 9 522 9531 Mobile: +64 21 866 529
-- NZ PHP Users Group: http://groups.google.com/group/nzphpug To post, send email to [email protected] To unsubscribe, send email to [email protected]
