Язык:PHP / MySQL
Я схожу с ума, мне действительно нужно спросить сейчас... У меня есть форма для загрузки нескольких файлов:
С помощью некоторого Javascript при каждом изменении, внесенном в этот ввод, он добавляет список имен файлов + отформатированную строку (, полученную из имени файла )внутри другого ввода, поэтому при изменении у нас есть макет как показано ниже(предполагая, что мы только что добавили несколько изображений):
Почти аналогично:http://jsfiddle.net/pxfunc/WWNnV/4/
// HTML-представление такого макета будет...(предполагая, что мы добавили 3 изображения)
У меня это так, потому что помимо загрузки файлов, я также хотел бы добавить их в свою базу данных с заголовком по умолчанию , основанным на его имени файла (, и возможностью установить/изменить этот заголовок для каждое изображение, как я его загружаю ). С моей формой проблем нет.
ПРОБЛЕМА:Моя дилемма находится внутри страницы 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 хороший результат либо для загрузки изображения, либо для заголовка, а не для обоих.
Мне нужно загрузить изображение на сайт, а затем сохранить его данные (, включая путь к изображению ), в мою базу данных.
Пожалуйста, изучите мой код и просветите меня, как решить эту проблему? Фрагмент подсказки был бы действительно замечательным на данный момент, так как я уже очень запутался после того, как попробовал все, что мог придумать. Большое спасибо!