Как мне отредактировать форму и скрипт для загрузки двух файлов вместо одного-файла на сервер, имя файла в mysql - PullRequest
0 голосов
/ 13 января 2010

Форма и код PHP, включенные здесь, были использованы для успешной загрузки имени файла в базу данных и самого файла в папку на сервере. Мне нужно отредактировать форму и код для одновременной загрузки двух файлов вместо одного. Имена файлов будут отправлены в базу данных, а сами файлы - в папку на сервере. В полях базы данных mysql каждое из имен файлов должно обрабатываться статическими строками; "images /" и "flash /". Один для изображений, который уже есть в скрипте, мне просто нужно изменить скрипт для принятия второй загрузки файла (загруженные файлы будут jpeg и flash вместо просто jpeg, как сейчас. На форме второй файл поле может содержать имя Flash. Я отредактировал базу данных mysql, чтобы в ней было дополнительное поле с именем flash.

Короче говоря, мне нужно, чтобы это работало именно так, как сейчас, загружая только 2 файла вместо одного. Как мне это сделать?

<form enctype="multipart/form-data" action="add.php" method="POST"> 
Name: <input type="text" name="name"><br> 
E-mail: <input type="text" name = "email"><br> 
Phone: <input type="text" name = "phone"><br> 
Photo: <input type="file" name="photo"><br>
STK: <input type="text" name = "STK"><br>
<input type="submit" value="Add"> 
</form>
</body>
</html>

<?php 

//This is the directory where images will be saved 
$target = "images/"; 
$target = $target . basename( $_FILES['photo']['name']); 

//This gets all the other information from the form 
$ID=$_POST['ID'];
$name=$_POST['name']; 
$email=$_POST['email']; 
$phone=$_POST['phone']; 
$pic=($_FILES['photo']['name']); 
$STK=$_POST['STK'];

// Connects to your Database 
mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
mysql_select_db("employees") or die(mysql_error()) ; 

//Writes the information to the database 
mysql_query("INSERT INTO `employees` VALUES ('$ID','$name', '$email', '$phone', 'images/$pic','$STK')") ; 

//Writes the photo to the server 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 

//Tells you if its all ok 
echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded, and     your information has been added to the directory"; 
} 
else { 

//Gives and error if its not 
echo "Sorry, there was a problem uploading your file."; 
} 
?>
</body>

Ответы [ 2 ]

1 голос
/ 30 июля 2010

в первую очередь необходимо изменить форму:

Photo 1: <input type="file" name="photo[]"><br>
Photo 2: <input type="file" name="photo[]"><br>

второй:

вам нужно: вам нужно другое поле в вашей базе данных для хранения второго имени файла фотографии

, затем просто используйте цикл foreach() для запуска массива $_Files

0 голосов
/ 04 декабря 2010

Если вы хотите отделить фотографии от файлов Flash, измените форму следующим образом:

Photo: <input type="file" name="photo"><br />
Flash file: <input type="file" name="flash"><br />

и затем добавьте:

$pic=($_FILES['photo']['name']);
$flash=($_FILES['flash']['name']);

И, наконец, добавьте к вашему запросу INSERT соответственно. Как сказал sfmoe, если вы хотите разрешить несколько фотографий и для нескольких флеш-файлов, просто добавьте больше полей, превратите photo и flash в photo[] и flash[] (во входных тегах), и используйте цикл foreach .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...