2014-11-05 3 views
0

В настоящее время я очень озадачен тем, почему я не могу вставить массив изображений в мою базу данных. На данный момент моя текущая многократная загрузка файла способна загружать изображения в мой каталог по умолчанию и способна хранить ТОЛЬКО первое изображение в моей базе данных SQL-сервера, почему это так? Разве команда foreach не может разделить все несколько файлов, которые я загружаю и сохраняю их соответственно в базе данных? Прошу пролить свет, спасибо!Множественная загрузка изображения с использованием PHP в базу данных MYSQL

HTML код

<form method="post" enctype="multipart/form-data" action=""> 
    <input type="file" name="files[]" id="files" multiple /> 
    <br /><br /> 
    <button type="submit">Upload selected files</button> 

PHP код

foreach ($_FILES["files"]["error"] as $key => $error) { 
     if ($error == UPLOAD_ERR_OK) { 
      $name = $_FILES["files"]["name"][$key]; 
      move_uploaded_file($_FILES["files"]["tmp_name"][$key], "" . $_FILES['files']['name'][$key]); 
      $sql = "INSERT INTO `test`(`image`) VALUES ('" . $name . "')"; 
      $result = mysqli_query($connection, $sql); 
      echo "The file " . basename($_FILES['multiple_uploaded_files']['name']) . " has been uploaded"; 
     } else { 
      echo "There was an error uploading the file, please try again!"; 
     } 
    } 

Cheers, Техник новичку обучение в процессе.

+0

Я рекомендую прочитать это: http://stackoverflow.com/questions/6472233/can-i-store-images-in-mysql – Som1

+0

Вы говорите, что ВСЕ загруженные изображения получают загружены и переехал в собственное местоположение, но только имя первого хранится в db? – Shomz

+0

Я пробовал его на локальном хосте, и он должен работать, я не вижу ошибок в коде. Только эта строка: '$ _FILES ['multiple_uploaded_files']' В $ _FILES нет ключа. Это должно быть: 'basename ($ _ FILES ['files'] ['name'] [$ key])' – vaso123

ответ

1
try with this example code, 

    $path = "imageuploads/"; 
    for($i=0; $i<count($_FILES['file']['name']); $i++){ 
    $extension = explode('.', basename($_FILES['file']['name'][$i])); 
    $path = $path . md5(uniqid()) . "." . $extension[count($extension)-1]; 

     if(move_uploaded_file($_FILES['file']['tmp_name'][$i], $path)) { 
     //insert query 
     echo "uploaded successfully"; 
      } else{ 
     echo "Error in Upload"; 
     } 
    } 
Above code is not worked, please tell the scenario 
+0

Привет, Салим, спасибо вам за помощь. Существует проблема с выполнением кода, файлы перемещаются в каталог в соответствии с кодом, проблема 1: имя файла укладывается друг на друга друг с другом, имя file1: 123.jpg file2 name: 123.jpg456. JPG. проблема 2: ни один из файлов, хранящихся в папке, не вставлен в базу данных на этот раз, спасибо за время и усилия. :) – Newbie

+0

@Newbie Добро пожаловать, чувак! Круто. –

+0

У вас там 2 проблемы. Пожалуйста, помогите :) – Newbie

Смежные вопросы