@admin, ми даде един съвет относно качването на снимки при сайтове/ако се очаква да се качват разбира се/.
Така.
Опитах се да създам сам кода, но стават все не сполучливи неща.
Идеята е следната. Ако upload директорията има над 1000 файла да се създава нова папка и в нея да се качват новите файлове, ако вече и в нея има над 1000 файла, то тогава отново да се създава нова папка.
Тоест.
upload/1/
upload/2/
upload/3/
...
Опитах се да напиша кода, но без успех.
Първия код, които ми хрумна снощи беше:
Какво имаме? Проверяваме правомощията на папката, проверяваме дали съществува, сканираме е за да преброим файлове, ако върне по-голям резултат от 1000 да създаде папка upload/2
и да качи файла в тази директория. Хубаво, но ако въпросната директория бъде с 1000 снимки, то тогава ще трябва да създам и в нея една проверка може би:
От което се губи целия смисъл.
Мислех да използвам for() за целта, но така ще създавам въпросните папки без въобще да се прави проверка дали има файлове във въпросните папки и те ще си бъдат празни..
Очаквам предложения и примери.
Така.
Опитах се да създам сам кода, но стават все не сполучливи неща.
Идеята е следната. Ако upload директорията има над 1000 файла да се създава нова папка и в нея да се качват новите файлове, ако вече и в нея има над 1000 файла, то тогава отново да се създава нова папка.
Тоест.
upload/1/
upload/2/
upload/3/
...
И друго важно нещо.
Не може да имаш 20000 снимки в една директория.
Ще скапеш сървърът.
Или 100000 или 1000000.
Товари дзверски.
Питай някой и ще видиш.
В туриста има система да се качват в
/images/1/ - 1000 файла
/images/2/ - 1000 файла
....
Опитах се да напиша кода, но без успех.
Първия код, които ми хрумна снощи беше:
PHP:
<?php
$path = "upload/";
if (!is_writeable("$path")){
echo "Грешка: Промени правомощията на папката.";
} else {
if(!is_dir("$path")) {
echo "Главната директория не съществува.";
} else {
$directory = scandir($path);
$directory = array_diff($directory, array('.','..'));
$dir_count = count($directory);
if($dir_count > 1000) {
mkdir("upload/1", 777, true);
//upload
} else {
//upload
}
}
}
?>
Какво имаме? Проверяваме правомощията на папката, проверяваме дали съществува, сканираме е за да преброим файлове, ако върне по-голям резултат от 1000 да създаде папка upload/2
и да качи файла в тази директория. Хубаво, но ако въпросната директория бъде с 1000 снимки, то тогава ще трябва да създам и в нея една проверка може би:
PHP:
<?php
$path = "upload/";
if (!is_writeable("$path")){
echo "Грешка: Промени правомощията на папката.";
} else {
if(!is_dir("$path")) {
echo "Главната директория не съществува.";
} else {
$directory = scandir($path);
$directory = array_diff($directory, array('.','..'));
$dir_count = count($directory);
if($dir_count > 1000) {
mkdir("upload/1", 777, true);
$directory = scandir("upload/1");
$directory = array_diff($directory, array('.','..'));
$dir_count = count($directory);
if($dir_count > 1000) {
mkdir("upload/2", 777, true);
//upload
} else {
//upload
}
} else {
//upload
}
}
}
?>
От което се губи целия смисъл.
Мислех да използвам for() за целта, но така ще създавам въпросните папки без въобще да се прави проверка дали има файлове във въпросните папки и те ще си бъдат празни..
PHP:
<?php
for ($i=0; $i<=15; $i++) {
mkdir(dechex($i),0755);
}
?>
Очаквам предложения и примери.