Kenny Pollock Posted August 2, 2007 Share Posted August 2, 2007 Right now, I have an upload form with 5 fields (5 uploads at once): $tmp_name = $_FILES['pictures']["tmp_name"][$key]; $name = $_FILES['pictures']["name"][$key]; move_uploaded_file( $tmp_name, "$garage_dir/$name" ); With that code, the filename stays the same when it's uploaded. Now I want to have it renamed to image1, image2, image3 before it's uploaded. Any help is GREATLY appreciated! Quote Link to comment https://forums.phpfreaks.com/topic/63031-php-forms/ Share on other sites More sharing options...
wildteen88 Posted August 2, 2007 Share Posted August 2, 2007 You'll probably want to do some string processing on the $name variable, Not sure but try: $tmp_name = $_FILES['pictures']["tmp_name"][$key]; $name = $_FILES['pictures']["name"][$key]; list($filename, $ext) = explode('.', $name); $name = $filename . $key . $ext; move_uploaded_file( $tmp_name, "$garage_dir/$name" ); Quote Link to comment https://forums.phpfreaks.com/topic/63031-php-forms/#findComment-313905 Share on other sites More sharing options...
HaLo2FrEeEk Posted August 2, 2007 Share Posted August 2, 2007 Well, make sure you have your form set up so that the name of each is "pictures[]", that way you have an array of files to upload. Then what you need to do is something like this: $count = 0; foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $name = "image".$count; move_uploaded_file($tmp_name, "data/$name"); $count++; } } Quote Link to comment https://forums.phpfreaks.com/topic/63031-php-forms/#findComment-313908 Share on other sites More sharing options...
Kenny Pollock Posted August 2, 2007 Author Share Posted August 2, 2007 Thank you, hit the nail on the head! Now, right below that code I have: mysql_query( "UPDATE garage_vehicles SET year = '" . $year . "', make = '" . $make . "', model = '" . $model . "', color = '" . $color . "', exterior_mods = '" . $exterior_mods . "', interior_mods = '" . $interior_mods . "', engine_mods = '" . $engine_mods . "', suspension_mods = '" . $suspension_mods . "', electronics = '" . $electronics . "', awards = '" . $awards . "', image1 = '" . $_FILES['pictures']['name'][0] . "', image2 = '" . $_FILES['pictures']['name'][1] . "', image3 = '" . $_FILES['pictures']['name'][2] . "', image4 = '" . $_FILES['pictures']['name'][3] . "', image5 = '" . $_FILES['pictures']['name'][4] . "' WHERE garage_id = '" . $_POST['garage_id'] . "'", $link ); What do I replace $_FILES... with? Quote Link to comment https://forums.phpfreaks.com/topic/63031-php-forms/#findComment-313933 Share on other sites More sharing options...
HaLo2FrEeEk Posted August 3, 2007 Share Posted August 3, 2007 Try: $count = 0; $names = array(); foreach ($_FILES["pictures"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $tmp_name = $_FILES["pictures"]["tmp_name"][$key]; $ext = substr(strtolower($tmp_name), strrpos($tmp_name, ".")+1, strlen($tmp_name)); array_push($names, "image".$count.$ext); move_uploaded_file($tmp_name, "data/$name"); $count++; } } $query = " UPDATE `garage_vehicles` SET `year` = '".$year."', `make` = '".$make."', `model` = '".$model."', `color` = '".$color."', `exterior_mods` = '".$exterior_mods."', `interior_mods` = '".$interior_mods."', `engine_mods` = '".$engine_mods."', `suspension_mods` = '".$suspension_mods."', `electronics` = '".$electronics."',"; `awards` = '".$awards."', `image1` = '".$names[0]."', `image2` = '".$names[1]."', `image3` = '".$names[2]."', `image4` = '".$names[3]."', `image5` = '".$names[4]."' WHERE `garage_id` = '".$_POST['garage_id']."'"; if(mysql_query($query)) { echo "Record successfully updated"; } else { echo "Error, the record was not updated."; } I also cleaned up your query to make it easier to read. Quote Link to comment https://forums.phpfreaks.com/topic/63031-php-forms/#findComment-314807 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.