Upload на няколко файла наведнъж
Публикувана от smilev на January 12 2011 09:47:10

Разширена новина
Ето един код за качване на няколко файлове на веднъж.


[code]
<?php
session_start();
// CONFIG START //

$max_razmer = 50; // максималният размер на файл (в KB)
$max_razre6eni_failove = 5; // колко файла на веднъж да може да се качват
$ext = array('jpg','gif','png','jpeg','bmp'); // кои разширения да са разрешени
$folder = "Upload/"; // папката в, която ще се качват файловете
$fail_replace = 0; // да позволява ли заместването на новите файлове с еднакво име със старите (1 за ДА, 0 за НЕ)

// CONFIG END //

if (isset($_POST['upload'])) {
if (isset($_SESSION['broi']) && $_SESSION['broi'] > 0 && $_SESSION['broi'] <= $max_razre6eni_failove) {
for ($i=1;$i<=$_SESSION['broi'];$i++) {
if ($_FILES["fail_$i"]['name'] != NULL) {
$extnafaila = end(explode('.',$_FILES["fail_$i"]['name']));
$extnafaila = strtolower($extnafaila);
if(in_array($extnafaila,$ext)){
$razmer_max_fail = $max_razmer * 1024;
if ($_FILES["fail_$i"]['size'] <= $razmer_max_fail) {
$putq = $folder.basename($_FILES["fail_$i"]['name']);
if ($fail_replace == 0 && @file_exists($putq)) {
$exit_message .= "<br><font color="red"><b>".$_FILES["fail_$i"]['name']."</b> не беше качен. Вече съществува такъв файл!</font>";
} else {
if (@copy($_FILES["fail_$i"]['tmp_name'], $putq)) {
$exit_message .= "<br><font color="green"><b>".$_FILES["fail_$i"]['name']."</b> файлът беше качен успешно!</font>";
}
else {
$exit_message .= "<br><font color="red"><b>".$_FILES["fail_$i"]['name']."</b> не беше качен. Не е позволено Upload-ването в дадената папка или не съществува папката за Upload!</font>";
}
}
} else {
$exit_message .= "<br><font color="red"><b>".$_FILES["fail_$i"]['name']."</b> не беше качен. Размера е по-голям от допустимият($max_razmer KB)!</font>";
}
}
else {
$exit_message .= "<br><font color="red"><b>".$_FILES["fail_$i"]['name']."</b> не беше качен. Не разрешен тип файлове!</font>";
}
}
}
echo $exit_message;
} else { echo "За съжеление се появи грешка!<br>Моля започнете от начало качването!"; }
} else {
if (isset($_POST['submit'])) {
if ($_POST['broi'] > 0 && $_POST['broi'] <= $max_razre6eni_failove && is_numeric($_POST['broi'])) {
$_SESSION['broi'] = $_POST['broi'];
?>
<form action="" enctype="multipart/form-data" method="post">
<?php
for ($i=1;$i<=$_POST['broi'];$i++) { ?>
<input type="file" name="fail_<?=$i?>"><br>
<?php } ?>
<input type="submit" name="upload" value="Качи">
</form>
<?php
} else { echo "Грешка!<br>Трябва да изберете най-малко 1 файл и не повече от $max_razre6eni_failove файла за качване на веднъж!"; }
} else {
?>
<form action="" method="post">
Колко файла на веднъж: <input type="text" name="broi" size="3" value="">
<input type="submit" name="submit" value="Продължи">
</form>
<?php
}
}
?>
[/code]
Кода е писан лично от мен и забранявам преписването му в други сайтове без мое съгласие!