Кто подскажет как реализовать мультивыгрузку файлов(изображений) на сервер.код привожу для одного файла.в теме для одного вопроса писал, никто не помог.
<?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="К странице >>"/></form></p>';
}
echo '<p><a href="faq.php?act=tags">ВВcode</a></p>';
}
} else {
header('location: /login.php');
}
?>
Ох емае... Зачем весь код сюда кидать? На форуме лично создавал тему с нужным кодом.
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 файлов сделать.И так по десять файлов за раз выгружай.
blackvj, циклом foreach перебрать $_FILES не?
Спасибо,сегодня вечером попробую.
Koenig, Я пока что не освоил циклы в php.Если выложешь этот код с циклами,я и автор темы будем благодарны.
Koenig, Спасибо с меня + в карму.Кстати добавил твой сайт в закладки(полезная вещь).