Массивы из формы множественной загрузки, загрузка изображений и вставка в базу данных (PHP, MySQL)

Язык:PHP / MySQL

Я схожу с ума, мне действительно нужно спросить сейчас... У меня есть форма для загрузки нескольких файлов:

С помощью некоторого Javascript при каждом изменении, внесенном в этот ввод, он добавляет список имен файлов + отформатированную строку (, полученную из имени файла )внутри другого ввода, поэтому при изменении у нас есть макет как показано ниже(предполагая, что мы только что добавили несколько изображений):

Multiple Upload FormПочти аналогично:http://jsfiddle.net/pxfunc/WWNnV/4/


// HTML-представление такого макета будет...(предполагая, что мы добавили 3 изображения)

  • изображение -имя -1.jpg  
  • просто какой-то _файл.png  
  • некоторые _Img -031.gif  


У меня это так, потому что помимо загрузки файлов, я также хотел бы добавить их в свою базу данных с заголовком по умолчанию , основанным на его имени файла (, и возможностью установить/изменить этот заголовок для каждое изображение, как я его загружаю ). С моей формой проблем нет.

ПРОБЛЕМА:Моя дилемма находится внутри страницы PHP, где отправляются данные/действия формы.

Я могу только:

  • Загрузите правильные изображения, но получите одинаковое название для всех
  • Вставьте правильные заголовки, но получите одинаковое изображение для всех

Вот моя страница действий PHP:(В настоящее время загружаются правильные изображения, но у них одинаковое название для всех)

 $l)
{
    foreach ($l as $i => $v)
    {
        if (!array_key_exists($i, $files))
        $files[$i] = array();
        $files[$i][$k] = $v;
        $imagename = $_POST['keyword'][$i];
    }
}

// create an array here to hold file names
$uploaded = array();
foreach ($files as $file)
 {
            $generate_name = rand(100,99999); 
            $generate_name_extra = rand(200,9999);
            $filenamex = "COVER_PHOTO_".$generate_name.$generate_name_extra."_".time();
            $filenamex_thumb = $filenamex."_thumb";

            $handle = new upload($file);
            if ($handle->uploaded) {
            $this_upload = array();

            ///// 1 ////////////////////////////////////////////////////////////////////
            $handle->file_new_name_body   = $filenamex_thumb;
            $handle->file_force_extension = true;
            $handle->image_resize         = true;
            $handle->image_x              = '300';
            $handle->image_ratio_y        = true;
            $handle->jpeg_quality = '100';

            // ABSOLUTE PATH BELOW
            $handle->process($absoRoot.'covers/thumbs/');
            ////////////////////////////////////////////////////////////////////////////
            if ($handle->processed) {

      // store the image filename
    $this_upload['image'] = $handle->file_dst_name; // Destination file name
    $this_upload['body'] = $handle->file_dst_name_body; // Destination file name body
    $this_upload['extension'] = $handle->file_dst_name_ext; // Destination file extension

        $category_id = $_POST['cat'];
        $hiddenvalues = explode ("|",$_POST["cat"]);
        $category = $hiddenvalues[0];
        $category_name = $hiddenvalues[1];


                $sql = 'INSERT INTO cover (id, img, keyword, category_name, cat_id) VALUES ("", "'.$this_upload['image'].'", "'.$imagename.'", "'.$category_name.'", "'.$category.'")';
                 mysql_query($sql);
        }

    $handle->clean();
        header("Location:./upload.php");
                $message = "";
    } else {

         echo '  file not uploaded to the wanted location';
         echo '  Error: '. $handle->error. '';

      }
} ?>

(Я используюЗагрузить класс от Колина Веро для обработки загрузки изображений, а их руководство по часто задаваемым вопросам для обработки НЕСКОЛЬКИХ загрузок изображений на на этой странице в разделе:Как насчет нескольких загрузок?)

Это сработало бы идеально, если бы я просто загружал изображения,однако я добавил функциональность добавления данных каждого изображения в мою базу данных. & Здесь это сбивает с толку.

Я уверен, что ключом является размещение SQL-запроса внутри правильного foreach или, возможно, создание другого, но я пробовал это, и это дает мне только 1 хороший результат либо для загрузки изображения, либо для заголовка, а не для обоих.

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

Пожалуйста, изучите мой код и просветите меня, как решить эту проблему? Фрагмент подсказки был бы действительно замечательным на данный момент, так как я уже очень запутался после того, как попробовал все, что мог придумать. Большое спасибо!

6
задан Mafia 26 June 2012 в 06:53
поделиться