Мульти загрузка файлов

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

<?php
if ($user_id) {
 if (isset($_POST['submit'])) {
 require_once ('../incfiles/lib/class.upload.php');
 $handle = new upload($_FILES['imagefile']);
 if ($handle->uploaded) {
 $name_file = time() . '_' . mt_rand(100, 999);
 $handle->file_new_name_body = $name_file;
 $handle->allowed = array('image/jpeg', 'image/gif', 'image/png');
 $handle->file_max_size = 1024 * $upload_file_size;
 $handle->file_overwrite = true;
 $handle->image_convert = 'jpg';
 $handle->process('../files/images/');
 if ($handle->processed) {
 $handle->file_new_name_body =$name_file . '_preview';
 $GetImageSize = GetImageSize('../files/images/' . $name_file . '.jpg');
 $handle->file_overwrite = true;
 $handle->image_resize = true;
 $handle->image_ratio_crop = true;
 $x_ratio = 200 / $GetImageSize[0];
 $y_ratio = 100 / $GetImageSize[1];
if (($GetImageSize[0] <= 80) && ($GetImageSize[1] <= 80)) {
 $handle->image_x = $GetImageSize[0];
 $handle->image_y = $GetImageSize[1];
 } else if (($x_ratio * $GetImageSize[1]) < 80) {
 $handle->image_y = ceil($x_ratio * $GetImageSize[1]);
 $handle->image_x = 200;
 } else {
 $handle->image_x = ceil($y_ratio * $GetImageSize[0]);
 $handle->image_y = 100;
 }
$handle->image_convert = 'jpg';
$handle->process('../files/images/');
if ($handle->processed) {
 echo '<div class="phdr"><a href="upload_img.php">Вернуться</a> | <b>Загрузка изображений</b></div>' .
 '<div class="gmenu">Изображение загружено! Теперь Вы можете вставить его в любое сообщение на сайте</div>' .
 '<div class="menu">BBcode: <input type="text" value="[img=' . $name_file . ']" /></div>' .
 '<div class="phdr"><a href="upload_img.php">Вернуться</a></div>';
}else
echo functions::display_error($handle->error, '<a href="upload_img.php">Назад</a>');
} else
 echo functions::display_error($handle->error, '<a href="upload_img.php">Назад</a>');
$handle->clean();
} else {
 echo functions::display_error('Не выбран файл', '<a href="upload_img.php">Назад</a>');
 }
 } else {
 echo '<div class="phdr"> <a href="faq.php?act=tags">ВВcode</a> | <b>Загрузка изображений</b></div>' .
 '<form enctype="multipart/form-data" method="post" action="upload_img.php?img"><div class="list1">' .
 'Выберите изображение:
<input type="file" name="imagefile" value="" />' .
 '<input type="hidden" name="MAX_FILE_SIZE" value="' . (1024 * $upload_file_size) . '" />' . '
' .
 '<p><input type="submit" name="submit" value="Выгрузить" /></p></div></form>' .
 '<div class="list2"><small>Для выгрузки разрешены файлы JPG, JPEG, PNG, GIF
' .
 'Размер файла не должен превышать ' . $upload_file_size . 'кб.</small></div>' .
 '<div class="phdr"><b>Изображения</b></div>';
$array = glob($rootpath . 'files/images/*preview.jpg');
 $total = count($array);
 $end = $start + $kmess;
 if ($end > $total)
 $end = $total;
 if ($start >= $total) {
 $start = 0;
 $end = $total > $kmess ? $kmess : $total;
 }
 if ($total > 0) {
 for ($i = $start; $i < $end; $i++) {
 $code = preg_replace('#../files/images/(.+?)_preview.jpg#is', '\1', $array[$i]);
 echo ($i % 2) ? '<div class="list2">' : '<div class="list1">';
echo'<table width="100%" cellspacing="0" cellpadding="0"><tr valign="top"><td>' .
'<a href="' . str_replace('_preview', '', $array[$i]) . '"><img src="' . $array[$i] . '" alt="+" /></a></td>' .
 '<td align="right"><input type="text" value="[img=' . $code . ']" /></td></tr></table></div>';
}
 } else
 echo '<div class="menu">Список пуст!</div>';
 echo '<div class="phdr">Всего ' . $total . '</div>';
 if ($total > $kmess) {
 echo '<div class="topmenu">' . functions::display_pagination('upload_img.php?', $start, $total, $kmess) . '</div>';
 echo '<p><form action="upload_img.php" method="post"><input type="submit" value="К странице &gt;&gt;"/></form></p>';
 }

echo '<p><a href="faq.php?act=tags">ВВcode</a></p>';
 }
} else {
 header('location: /login.php');
}
?>
.
Mes que un club
Ох емае... Зачем весь код сюда кидать? На форуме лично создавал тему с нужным кодом.
.
nokia-clubs, Я так понял ты хочешь как в ЗЦ сделать с указанием количества нужных файлов???
.
если не хочешь морочить голову с селектором переменных

то лучше сделай на стационарное количество файлов вот пример:

$handle = new upload($_FILES['imagefile1']);
if ($handle->uploaded) {
код настроек для картинки
$handle->image_convert = 'jpg';
handle->process('../files/pic/');
if ($handle->processed){
echo "<li>Скрин загружен!</li>";}
else {echo display_error($handle->error);}
$handle->clean();
}

$handle = new upload($_FILES['imagefile2']);
if ($handle->uploaded) {
код настроек для картинки
$handle->image_convert = 'jpg';
handle->process('../files/pic/');
if ($handle->processed){
echo "<li>Скрин загружен!</li>";}
else {echo display_error($handle->error);}
$handle->clean();
}

echo 'Скрин:
<input type="file" name="imagefile1" value="" />';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="' . (1024 * $flsz) . '" />';

echo 'Скрин:
<input type="file" name="imagefile2" value="" />';
echo '<input type="hidden" name="MAX_FILE_SIZE" value="' . (1024 * $flsz) . '" />';
.
Можешь до 10 файлов сделать.И так по десять файлов за раз выгружай.
.
(\/)____o_O____(\/)
blackvj, циклом foreach перебрать $_FILES не?
.
Спасибо,сегодня вечером попробую.
.
Koenig, Я пока что не освоил циклы в php.Если выложешь этот код с циклами,я и автор темы будем благодарны.
.
(\/)____o_O____(\/)
blackvj, http://annimon.com/code/?act=view&id=721 можешь подсмотреть
.
Koenig, Спасибо с меня + в карму.Кстати добавил твой сайт в закладки(полезная вещь).
Всего: 18