wrathican Posted July 22, 2008 Share Posted July 22, 2008 hey peeps thanks for looking. im trying to make an image upload script that creates a thumbnail and a smaller than original size version of the image. im using JS to add extra form fields to my form dynamically. so once a user has selected a file in the first box, another box appears and so on until there are 5 boxes. i can send the files to a script but at the moment it is just a testing one that echoes out the tmp name and actualt file name of the file(s) selected if i select 5 files and submit the output looks like this: (which means i have 5 boxes each containing something) /tmp/phpkexbXx - landscape_big15.jpg /tmp/phpOzAYCn - portrait_big.jpg /tmp/php4Tk5Te - landscape_big16.jpg /tmp/phpsXraM7 - landscape_big17.jpg /tmp/phpKvmxe2 - landscape_big19.jpg but if i only select 2 files my output looks like this: (which means 2 fields have input and there is one blank one) /tmp/phpmYw9d3 - landscape_big15.jpg /tmp/phpqwqCpP - landscape_big9.jpg - - - i guess when it comes to creating a thumbnail my script will fail. probably because after two have been done my script still thinks there are another 3 to go and if there is nothing to move/copy/whatever then it will fail. why is this happening when there are only 2 files? this is the testing code i am using: <?php $alId = $_POST['album']; $image = $_FILES['image']; $tmpImage = $image['tmp_name']; $imgImage = $image['name']; echo $alId . "<br />"; for ($i=0; $i < count($image); $i++) { if(!empty($tmpImage)) { echo $tmpImage[$i] . " - " . $imgImage[$i] ."<br />"; } } ?> thanks in advanced! Quote Link to comment https://forums.phpfreaks.com/topic/116012-solved-handling-multiple-file-uploads/ Share on other sites More sharing options...
MadTechie Posted July 22, 2008 Share Posted July 22, 2008 your using count that returns 2 because the array have 2 items.. but the loop starts at 0, and ends at 2 thus 0,1,2 AKA 3 try for ($i=0; $i < (count($image)-1); $i++) { Another option foreach($tmpImage as $K=> $img) //$K = array key, $img = current items { if(!empty($img)) { echo $tmpImage[$K] . " - " . $imgImage[$K] ."<br />"; //please note $tmpImage[$K] is the same as $img //its just an example (normally i would use $img) } } Quote Link to comment https://forums.phpfreaks.com/topic/116012-solved-handling-multiple-file-uploads/#findComment-596488 Share on other sites More sharing options...
wrathican Posted July 22, 2008 Author Share Posted July 22, 2008 well the array starts at 0 and by the looks of, the reason the loop prints the extra '-' underneath is because my array seems to have 5 entires but only 2 are an actul string. however the example you wrote works perfectly fine. thanks alot! Quote Link to comment https://forums.phpfreaks.com/topic/116012-solved-handling-multiple-file-uploads/#findComment-596492 Share on other sites More sharing options...
MadTechie Posted July 22, 2008 Share Posted July 22, 2008 Welcome, i use foreach with array 95% of the time, i find them easier just remember count is always over more then you need lol Quote Link to comment https://forums.phpfreaks.com/topic/116012-solved-handling-multiple-file-uploads/#findComment-596493 Share on other sites More sharing options...
wrathican Posted July 22, 2008 Author Share Posted July 22, 2008 ahh i get it, count starts at 1 and the array starts at 0... silly php Quote Link to comment https://forums.phpfreaks.com/topic/116012-solved-handling-multiple-file-uploads/#findComment-596498 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.