Несколько входов изображений в одной форме?

Большинство проблем, которые я вижу, связаны с ОДНЫМ вводом изображения. Но что, если у вас есть 2 или 3 или больше?

Мой сценарий для ввода одного изображения сработал, но я пытаюсь использовать один ввод с одним изображением и один ввод с несколькими изображениями в моей форме. Я тестирую, что в моей форме есть 2 ввода с одним изображением, но я не работаю.

Вот HTML для ввода одного изображения (предположим, что это внутри < форма> тег):

  <input type="hidden" name="size" value="350000"/>
<input type="file" name="schoollogo"/><br/>

PHP:

  $target = "images/logo/";
$target = $target . basename( $_FILES['schoollogo']['name']);

$schoollogo = $_FILES['schoollogo']['name'];

//Writes the information to the database

mysql_query("INSERT INTO Colleges (schoollogo) VALUES ('$schoollogo')") or die(mysql_error()) ;

//Writes the logo to the server
if (move_uploaded_file($_FILES['schoollogo']['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.";
}

Для второго ввода одного изображения я просто добавил второй код ввода …

 <input type="hidden" name="size" value="350000"/>
<input type="file" name="otherimage"/><br/>

А затем добавил переменную в PHP:

  $targetotherimage = "images/otherimage/";
$targetotherimage = $targetotherimage . basename( $_FILES['otherimage']['name']);

mysql_query("INSERT INTO Colleges (schoollogo,otherimage) VALUES ('$schoollogo','$otherimage')") or die(mysql_error()) ;

//Writes the logo to the server
if (move_uploaded_file($_FILES['schoollogo']['tmp_name'], $target)) && (move_uploaded_file($_FILES['otherimage']['tmp_name'], $targetotherimage)) {

но при добавлении этого кода в PHP код не работает. Нет сообщений об ошибках или что-нибудь. Страница пуста.

Кстати, вот мой другой вопрос где я пытаюсь добавить вход для загрузки нескольких изображений в мою форму с уже работающим входом для загрузки одного изображения.

1

Решение

Неправильное закрытие условия if.

  if(move_uploaded_file($_FILES['schoollogo']['tmp_name'], $target)) && (move_uploaded_file($_FILES['otherimage']['tmp_name'], $targetotherimage)) {
^^^^// In your code if condition close here

Используется как

  if(move_uploaded_file($_FILES['schoollogo']['tmp_name'], $target)

&& (move_uploaded_file($_FILES['otherimage']['tmp_name'],  $targetotherimage)))//if condition close here
{
// rest of code

}
1

Другие решения

Это будет работать для вас, замените вашу форму с этим

<form method="post" enctype="multipart/form-data" action="upload.php">
<input type="file" name="file['schoollogo']" >
<input type="file" name="file['otherimage']" >
<input type="submit" value="submit">
</form>

Вы получите ваши файлы в этом формате:

Array
(
[file] => Array
(
[name] => Array
(
['schoollogo'] => 1465386599_Location_Outline-36.png
['otherimage'] => STONE_Website_v7E.jpg
)

[type] => Array
(
['schoollogo'] => image/png
['otherimage'] => image/jpeg
)
)
)

И в файле upload.php

<?php
if (isset($_FILES['file']))
{
$schoollogo=$_FILES['file']['name']['schoollogo'];
$target = "images/logo/".basename($schoollogo);;

$otherimage = $_FILES['file']['name']['otherimage'];
$targetotherimage = "images/otherimage/".basename($otherimage);

$tmp_name_school = $_FILES['file']['tmp_name']['schoollogo'];
$tmp_name_other = $_FILES['file']['tmp_name']['otherimage'];

if ($tmp_name_school != "" && $tmp_name_other !== "")
{
//Upload the file
if(move_uploaded_file($tmp_name_school,$target) && move_uploaded_file($tmp_name_other, $targetotherimage))
{
mysql_query("INSERT INTO Colleges (schoollogo,otherimage) VALUES ('$schoollogo','$otherimage')") or die(mysql_error()) ;
echo'Done!';
}
else
{
echo "Not Moved";
}
}
}
?>
1

По вопросам рекламы [email protected]