Привет вообще у меня проблема, я получил форму, которая загружает файлы и вставляет в mysql часть вставки mysql работает, но он перемещает только один файл из трех на сервер, пожалуйста, помогите мне в этом коде. Форма загрузки:
<form enctype="multipart/form-data" action="add-exposes.php" method="POST"> Expose Name: <input type="text" name="name"><br> Expose Beschreibung: <textarea style="width: 810px; height: 200px" name="expose_desc" class="textarea"></textarea><br> Expose Kategorie:<select name="expose_cat" size="3"> <?php mysql_connect("xxx.de.mysql", "xxxx", "xxx") or die(mysql_error()) ; mysql_select_db("handwerker_verb") or die(mysql_error()) ; $data = mysql_query("SELECT * FROM cats") or die(mysql_error()); while($info = mysql_fetch_array( $data )) { echo '<option value="'.$info['id'].'">'.$info['cat'].'</option>'; } ?> </select><!--<input type="text" name="expose_cat">--><br>Expose Preis:<input type="text" name="price"> <br> Bild: <input type="file" name="photo"><br> <input type="file" name="photo1"><br> <input type="file" name="photo2"><br> <input type="submit" value="Add"> </form>
Добавить на сервер и mysql:
<?php $target = "images/"; $target = $target . basename( $_FILES['photo']['name']); $target1 = "images/"; $target1 = $target1 . basename( $_FILES['photo1']['name']); $target2 = "images/"; $target2 = $target2 . basename( $_FILES['photo2']['name']); $name=$_POST['name']; $expose_desc=$_POST['expose_desc']; $expose_cat=$_POST['expose_cat']; $pic=($_FILES['photo']['name']); $price=$_POST['price']; $pic1=($_FILES['photo1']['name']); $pic2=($_FILES['photo2']['name']); mysql_connect("xxxx.de.mysql", "xx", "xxx") or die(mysql_error()) ; mysql_select_db("handwerker_verb") or die(mysql_error()) ; mysql_query("INSERT INTO `exposes` VALUES ('', '$name', '$pic', '$expose_desc', '$expose_cat', '$price', '$pic1', '$pic2' )") ; if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } elseif(move_uploaded_file($_FILES['photo1']['tmp_name'], $target1)) { echo "The 2 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } elseif(move_uploaded_file($_FILES['photo2']['tmp_name'], $target2)) { echo "The 3 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } else { echo "Sorry, there was a problem uploading your file."; } ?>
move_uploaded_file возвращает true при успешном завершении, остальные elseif никогда не достигаются. Попробуйте что-то вроде этого:
$error = false; if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } else $error = true; if(move_uploaded_file($_FILES['photo1']['tmp_name'], $target1)) { echo "The 2 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } else $error = true; if(move_uploaded_file($_FILES['photo2']['tmp_name'], $target2)) { echo "The 3 file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory"; } else $error = true; if($error) echo "Sorry, there was a problem uploading your file.";