billy_111 Posted August 18, 2009 Share Posted August 18, 2009 Hey, I am trying to upload a number of images to my server at the same time in the same code, but am having problems. My code is shown below:- <?php if (isset($_POST['btn_update'])) { if($_POST['txt_c_name'] == "" || $_POST['txt_name'] == "" || $_POST['txt_desc'] == "" || $_POST['txt_price'] == "") { echo "<p style='color:red;padding:4px'>Please fill in all the fields.</p>"; } elseif($_POST['thing'] == "0") { echo "<p style='color:red;padding:4px'>Please select a category.</p>"; } else { include("conn.php"); $path1= 'garments/'.$_FILES['ufile'][0]['name']; $path2= 'garments/'.$_FILES['ufile'][1]['name']; $path3= 'garments/'.$_FILES['ufile'][2]['name']; $path4= 'garments/'.$_FILES['ufile'][3]['name']; $path5= 'garments/'.$_FILES['ufile'][4]['name']; copy($_FILES['ufile'][0]['tmp_name'], $path1); copy($_FILES['ufile'][1]['tmp_name'], $path2); copy($_FILES['ufile'][2]['tmp_name'], $path3); copy($_FILES['ufile'][3]['tmp_name'], $path4); copy($_FILES['ufile'][4]['tmp_name'], $path5); $filesize1=$_FILES['ufile'][0]['size']; $filesize2=$_FILES['ufile'][1]['size']; $filesize3=$_FILES['ufile'][2]['size']; $filesize4=$_FILES['ufile'][3]['size']; $filesize5=$_FILES['ufile'][4]['size']; [u][b] echo "<pre>"; print_r($_FILES); [/b][/u] $insert = "INSERT INTO category_selection (cat_id, selection_name, item_name, item_description, item_price, main_image, image_1, image_2, image_3, image_4, date_uploaded) VALUES ( '".$_POST['thing']."', '".$_POST['txt_c_name']."', '".$_POST['txt_name']."', '".$_POST['txt_desc']."', '".$_POST['txt_price']."', $path1, $path2, $path3, $path4, $path5, now() )"; $add_member = mysql_query($insert); if($filesize1 && $filesize2 && $filesize3 && $filesize4 && $filesize5 != 0) { echo "We have recieved your files"; } else { echo "ERROR....."; } if($filesize1==0) { echo "There're something error in your first file"; echo "<BR />"; } if($filesize2==0) { echo "There're something error in your second file"; echo "<BR />"; } if($filesize3==0) { echo "There're something error in your third file"; echo "<BR />"; } if($filesize4==0) { echo "There're something error in your fourth file"; echo "<BR />"; } if($filesize5==0) { echo "There're something error in your fifth file"; echo "<BR />"; } } If you look at the underlined code, i tried to pull out what the array was returning, when i try to upload i get this message:- Warning: copy() [function.copy]: Filename cannot be empty in /domains/skindeepapparel.com/http/lou/admin.php on line 148 Warning: copy() [function.copy]: Filename cannot be empty in /domains/skindeepapparel.com/http/lou/admin.php on line 149 Warning: copy() [function.copy]: Filename cannot be empty in /domains/skindeepapparel.com/http/lou/admin.php on line 150 Warning: copy() [function.copy]: Filename cannot be empty in /domains/skindeepapparel.com/http/lou/admin.php on line 151 Warning: copy() [function.copy]: Filename cannot be empty in /domains/skindeepapparel.com/http/lou/admin.php on line 152 Array ( [ufile] => Array ( [name] => Array ( [0] => company_profile.jpg [1] => company_profile.jpg [2] => company_profile.jpg [3] => company_profile.jpg [4] => company_profile.jpg ) [type] => Array ( [0] => image/jpeg [1] => image/jpeg [2] => image/jpeg [3] => image/jpeg [4] => image/jpeg ) [tmp_name] => Array ( [0] => /tmp/phpk1ayDp [1] => /tmp/phpTwFEKs [2] => /tmp/phpL2Hfmw [3] => /tmp/phpRL2fEA [4] => /tmp/phpI8ctvF ) [error] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 ) [size] => Array ( [0] => 6504 [1] => 6504 [2] => 6504 [3] => 6504 [4] => 6504 ) ) ) Sorry for pasting loads of code, but i think it was the best way to explain what i am trying to acheive.. Hope someone can help. Regards Quote Link to comment https://forums.phpfreaks.com/topic/170867-multiple-image-upload/ Share on other sites More sharing options...
ignace Posted August 18, 2009 Share Posted August 18, 2009 This is well covered in the manual: http://www.php.net/manual/en/features.file-upload.multiple.php Quote Link to comment https://forums.phpfreaks.com/topic/170867-multiple-image-upload/#findComment-901184 Share on other sites More sharing options...
billy_111 Posted August 18, 2009 Author Share Posted August 18, 2009 Hey, I have managed to upload the file to the server but i need to add the value to the specific rows in the database. I have 5 image uploads.. Now i have the following code:- include("conn.php"); $insert = "INSERT INTO category_selection (cat_id, selection_name, item_name, item_description, item_price, main_image, image_1, image_2, image_3, image_4, date_uploaded) VALUES ( '".$_POST['thing']."', '".$_POST['txt_c_name']."', '".$_POST['txt_name']."', '".$_POST['txt_desc']."', '".$_POST['txt_price']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', now() )"; $add_member = mysql_query($insert); //places files into same dir as form resides foreach ($_FILES["ufile"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { echo"$error_codes[$error]"; move_uploaded_file( $_FILES["ufile"]["tmp_name"][$key], 'garments/'.$_FILES["ufile"]["name"][$key] ) or die("Problems with upload"); } } Take a look at my insert statement, i want it to add each image file, but how can i do this? Regards Quote Link to comment https://forums.phpfreaks.com/topic/170867-multiple-image-upload/#findComment-901285 Share on other sites More sharing options...
ignace Posted August 18, 2009 Share Posted August 18, 2009 if (is_post() && !empty($_FILES)) { $files = $_FILES['userfiles']; if (is_array($files['tmp_name'])) { $sizeof = sizeof($files['tmp_name']); for ($i = 0; $i < $sizeof; ++$i) { $tmp_name = $files['tmp_name'][$i]; $name = $files['name'][$i]; //.. } } else { $tmp_name = $files['tmp_name']; $name = $files['name']; //.. } } function is_post() { return 'POST' === $_SERVER['REQUEST_METHOD']; } Quote Link to comment https://forums.phpfreaks.com/topic/170867-multiple-image-upload/#findComment-901339 Share on other sites More sharing options...
billy_111 Posted August 18, 2009 Author Share Posted August 18, 2009 Hey, Thanks for that, i have tried with the code in this way:- <?php if (isset($_POST['btn_update'])) { if($_POST['txt_c_name'] == "" || $_POST['txt_name'] == "" || $_POST['txt_desc'] == "" || $_POST['txt_price'] == "") { echo "<p style='color:red;padding:4px'>Please fill in all the fields.</p>"; } elseif($_POST['thing'] == "0") { echo "<p style='color:red;padding:4px'>Please select a category.</p>"; } else { if (is_post() && !empty($_FILES)) { $files = $_FILES['ufile']; if (is_array($files['tmp_name'])) { $sizeof = sizeof($files['tmp_name']); for ($i = 0; $i < $sizeof; ++$i) { $tmp_name = $files['tmp_name'][$i]; $name = $files['name'][$i]; } } else { $tmp_name = $files['tmp_name']; $name = $files['name']; } } function is_post() { return 'POST' === $_SERVER['REQUEST_METHOD']; } include("conn.php"); $insert = "INSERT INTO category_selection (cat_id, selection_name, item_name, item_description, item_price, main_image, image_1, image_2, image_3, image_4, date_uploaded) VALUES ( '".$_POST['thing']."', '".$_POST['txt_c_name']."', '".$_POST['txt_name']."', '".$_POST['txt_desc']."', '".$_POST['txt_price']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', '".$_FILES['ufile']."', now() )"; $add_member = mysql_query($insert); //places files into same dir as form resides foreach ($_FILES["ufile"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { echo"$error_codes[$error]"; move_uploaded_file( $_FILES["ufile"]["tmp_name"][$key], 'garments/'.$_FILES["ufile"]["name"][$key] ) or die("Problems with upload"); } } } } ?> I presumed that where you suggested $files = $_FILES['userfiles']; you were refering to $_FILES['ufile']..? Anyway i receive this error, now the insert AND the upload does not work.. Fatal error: Call to undefined function is_post() in /domains/skindeepapparel.com/http/lou/admin.php on line 140 Line 140 is the start of the code you suggested:- if (is_post() && !empty($_FILES)) {... Regards Quote Link to comment https://forums.phpfreaks.com/topic/170867-multiple-image-upload/#findComment-901382 Share on other sites More sharing options...
ignace Posted August 19, 2009 Share Posted August 19, 2009 If you take a close look at my post you'll notice: function is_post() { return 'POST' === $_SERVER['REQUEST_METHOD']; } If you copy-paste then make sure you copy-paste well. Quote Link to comment https://forums.phpfreaks.com/topic/170867-multiple-image-upload/#findComment-901959 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.