Перейти к публикации

Сортировка upload-файлов по папкам


Рекомендованные сообщения

Итак, есть у нас в локалке свой сайт, вот статистика:

Общий размер базы данных: 53.52 Mb

Общее количество новостей: 8175

Из них опубликовано: 8175

Опубликовано на главной: 8166

Ожидает модерации: 0

Количество комментариев: 47456 [просмотреть последние комментарии]

Зарегистрировано пользователей: 2136

Из них было забанено: 1

Версия PHP 4.3.8

Версия MySQL 4.0.20

Версия GD 2.0

Module mod_rewrite Включен

Безопасный режим Выключен

Выделено оперативной памяти: 200M

Отключенные функции: Неопределено

Размер базы данных: 53.52 Mb

Максимальный размер загружаемого файла: 2 Mb

Загружено картинок: 8.15 Gb

Загружено картинок: 8.15 Gb как мне сказал владелец сервера около 21 000 тысячи файлов в ОДНОЙ папке!

На всё бы "ладно", да только при загрузке картинок сервак стал тормозить. Чёрт с ним с винтом, на 10гиг был, скинулись купили новый на 80 гиг. Ситуация не изменилась.

Раньше очень аккуратный хозяин сортировал всё созданием каталогов:

2005(год)

-jan(месяц)

--01(число)

--02

--03

--04

--05

--...

--30

--31

-feb(месяц)

--01

--...

--28

и.т.д.

Вообщем на каждый день был свой каталог для файлов. К примеру сегодня 3.11.2006, все загруженные картинки этим днём попадали в папку /uploads/posts/2006/november/11/image.jpg, очень удобно, согласитесь, особенно для админа.

Кто знает как такое реализовать?

Ссылка на сообщение
Поделиться на других сайтах

Тоже такое интересно, хотя бы раскладка по месяцам /uploads/posts/2006/november/

Когда через ftp в папку /uploads/posts/ заходишь, долго ждать приходится, когда все картинки загрузятся.

Ссылка на сообщение
Поделиться на других сайтах

Согласен с blagoy_vip, или хотя-бы по месяцам сделать загрузку файлов.

А вообще было бы просто замечательно добавить возможность создания папок для загрузки изображений или файлов в модуле управления картинками. После чего сам модуль можно переименовать в "Управления файлами"

К примеру загружаю файлы или картинки, которые относятся к категории "Скрипты", и хочу их загружать не в папку uploads, где всё барахло лежит, а в отдельную папку "uploads/scripts"

1filesxt1.png

Считаю, что очень удобно для сортировки.

Ссылка на сообщение
Поделиться на других сайтах

Итак, есть у нас в локалке свой сайт, вот статистика:

Общий размер базы данных: 53.52 Mb

Общее количество новостей: 8175

Из них опубликовано: 8175

Опубликовано на главной: 8166

Ожидает модерации: 0

Количество комментариев: 47456 [просмотреть последние комментарии]

Зарегистрировано пользователей: 2136

Из них было забанено: 1

Версия PHP 4.3.8

Версия MySQL 4.0.20

Версия GD 2.0

Module mod_rewrite Включен

Безопасный режим Выключен

Выделено оперативной памяти: 200M

Отключенные функции: Неопределено

Размер базы данных: 53.52 Mb

Максимальный размер загружаемого файла: 2 Mb

Загружено картинок: 8.15 Gb

Чтож ты все со статистики написал, а самое главное забыл? А забыл ты написать тип лицензии скрипта. Как там у тя в админке написано, помоему "Сосёт х*й Костяна". :lol:

Ссылка на сообщение
Поделиться на других сайтах

Vitalik,

Итак, есть у нас в локалке свой сайт

не умничай

Я вполне серъезно. Если вы думаете, что у этого человека стоит лицензия, то глубоко ошибаетесь. А в админке так и написано. Это не шутка. :)

Ссылка на сообщение
Поделиться на других сайтах

У меня есть такой скрипт. Написал сам, загружаю картинки через одельный скрипт. Загружаеться в папку год/месяц т.е. например site.ru/uploads/2006/11/kartinka.jpg

Если наступил новый месяц, папк сама создаеться.

Вот скрипт, если кому нужен:

<?

define('XOOPS_ROOT_PATH', '/home/site.ru/htdocs');

$dir_name = XOOPS_ROOT_PATH . "/img/uploads";

$date = "/" . date("Y") . "/" . date("m");

$dir_date = $dir_name . $date;




////////////////////////////////////////////////////Function

echo "<center>Ссылки на изображения<br><br><center>";

function upload($name)

{

 $dir_name = XOOPS_ROOT_PATH . "/img/uploads";

 $date = "/" . date("Y") . "/" . date("m");

 $dir_date = $dir_name . $date;


 for ($i = 1; $i <= 10; $i++)

 {

  if(!empty($_FILES['uploaded_image']['name'][$i]))

  {

   if($_FILES['uploaded_image']['type'][$i] == "image/gif" or $_FILES['uploaded_image']['type'][$i] == "image/pjpeg")

   {

	if(!is_file($dir_date . "/" . $_FILES['uploaded_image']['name'][$i]))

	{

	 if(is_uploaded_file($_FILES['uploaded_image']['tmp_name'][$i]))

	 {

	  if(copy($_FILES['uploaded_image']['tmp_name'][$i], $dir_date . "/" . $name[$i]))

	  {

	  chmod($dir_date . "/" . $name[$i], 0777);

	   echo "<small>/img/uploads" . $date . "/" . $name[$i] . "<br></small>";

	echo "<small><a href='http://site.ru/img/uploads". $date . "/" . $name[$i] . "'>http://site.ru/img/uploads" . $date . "/" . $name[$i] . "</a><br></small>";


	   }

	  else

	  {

	   echo "Произошла ошибка с перемещением изображения";

	  }

	 }

	 else

	 {

	  echo "Произошла ошибка с загрузкой изображения";

	 }

	}

	else

	{

	echo "Файл с именем <b>" . $_FILES['uploaded_image']['name'][$i] . "</b> уже существует. Переименуйте его.<br>";

	}

   }

   else

   {

	echo "<br><br><center>Выбронный вами фаил не является изображением.<br>Поддерженые разширения для загрузки: *.jpg или *.gif<br>";

   }

  }

 }

}

///////////////////////////////////////////////////Function



if(is_dir($dir_date))

{

 if($open_dir = opendir($dir_date))

 {

	upload($_FILES['uploaded_image']['name']);


  closedir($open_dir);

 }

 else{

  echo "Произошла ошибка с открытием директории";

 }

}

else

{

 if(!is_dir($dir_name . "/" . date("Y")))

 {

  if(mkdir($dir_name . "/" . date("Y"), 0777));

  {

  chmod($dir_name . "/" . date("Y"), 0777);

   if(!is_dir($dir_name . "/" . date("Y") . "/" . date("m")))

   {

	if(mkdir($dir_name . "/" . date("Y") . "/" . date("m"), 0777))

	{

	chmod($dir_name . "/" . date("Y") . "/" . date("m"), 0777);

	  echo "<br><br><center>Была созданна папка для закачки изображаний<br>";

	  echo "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=java script:history.go(-0)'>";

	}

   }

  }

 }

 elseif(!is_dir($dir_name . "/" . date("Y") . "/" . date("m")))

 {

  if(mkdir($dir_name . "/" . date("Y") . "/" . date("m"), 0777))

  {

  chmod($dir_name . "/" . date("Y") . "/" . date("m"), 0777);

	echo "<br><br><center>Была созданна папка для закачки изображаний<br>";

	echo "<META HTTP-EQUIV='Refresh' CONTENT='1; URL=java script:history.go(-0)'>";

  }

 }

}

echo "<center><br><a href='http://site.ru/' onclick='window.close();return false;'>[Закрыть окно]</a><br></center>";

Изменено пользователем PVL
Ссылка на сообщение
Поделиться на других сайтах

Vitalik, в отличии от тебя я имею статус клиента на этом сайте и форуме, а ты статус юзера, поэтому твои слова всего-навсего бред.

Ссылка на сообщение
Поделиться на других сайтах

Эгей, Аффтар .. Чёта кроме создания папок в соответствии с годом и месяцем текушим ничё твой скрипт не делает .Ой . Вру . Ищщё делает 403 ошибки .. Гы ..

Представляется, что создать на серваке 36 папок (эта на 3 года в перёд) мона и руками . Раза в 3 быстрей, чем это хупсовое чудо под свой конфиг переписать.

Может кусочеГ скрипта ты не опубликовал ?? :blink: Отчегота ???

Ссылка на сообщение
Поделиться на других сайтах

Ну еще добавить это нужно в отдельный файл и указать путь к первому скрипту.

<?php

  echo "<center><form action='/upload_image.php' target='sub' method='post' enctype='multipart/form-data'>";

echo "<h5>Загрузка изображений <br>";

echo " <input type='file' size='10' class='file' name='uploaded_image[1]'><br>";

echo " <input type='file' size='10' class='file' name='uploaded_image[3]'><br>";

echo " <input type='file' size='10' class='file' name='uploaded_image[5]'><br>";

echo " <input type='file' size='10' class='file' name='uploaded_image[7]'><br>";

echo " <input type='file' size='10' class='file' name='uploaded_image[9]'><br>";


echo " <input type='submit' value='Загрузить' class='button'";

echo 'onclick="sub=window.open';

echo "('Идет загрузка...','sub','width=500,height=300,toolbar=no,location=no,directories=no,status=no,menubar

=no,scrollbars=yes,')";

echo '";>';

echo " <input type=reset value='Очистить'><br><br><br></form>";

?>

Ссылка на сообщение
Поделиться на других сайтах

PVL, напишите полнофункциональный мод, вам и спасибо скажут, и реклама для вас будет :)

Ссылка на сообщение
Поделиться на других сайтах

PVL

Полностью , двумя руками жду презентации ..

Ибо во фтаром фрагменте карты сокровищ всё ищё ниясно - Как это должно работать .

Пугает наличие всего лиш 5 инпут боксов - тоесть - с произвольным к -вом закачиваемых файлов - обломись .

Изменено пользователем dataman
Ссылка на сообщение
Поделиться на других сайтах

Залил сюда http://files.series60.ru/uploads/UPLOADS.zip

Кидайте файл upload_image.php в корень сайта, в нем же изменяйте в самом начале коде путь к сайту,также везде изменить нужно site.ru на ваш.

index.php можно кинуть куда угодно.

Скрипт настроент что фотки будут загружаться в папку /img/uploads/ так что либо создайте эту пару или измените путь к папке в upload_image.php

B)

Изменено пользователем PVL
Ссылка на сообщение
Поделиться на других сайтах

Всё работает . Как песочные часы... С такой же функциональностью .. Гы.

Но всёравно - удобно ...

Ссылка на сообщение
Поделиться на других сайтах

А не проще, зайти на FTP в uploads/ и создать папку c подпапкой thumbs и всё в админке появляется и прекрасно всё загружает и работает...

Ссылка на сообщение
Поделиться на других сайтах

Stude_nt,

Вот этот мой пост прочитай - Потом свой .. А потом - то , что мастер Костя писал - Фича в том , что АВТОМАТОМ каждый новый месяц создаётся новый каталог . И фйлы туда аплодятся ... Ну , превью скриптиг слегка прикрутить - получится намана аплод система.

Изменено пользователем dataman
Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...

Да темка интересная , но вот вопросик для стандартного уплоада который в движке стоит что нить на подобе нельзя ли переделать мож кто знает как его изменить

Ссылка на сообщение
Поделиться на других сайтах
  • 7 месяцев спустя...

Найди в файле /engine/inc/files.php строчки

/*

=====================================================

Загрузка картинок, но не файлов

=====================================================

*/

и после них ставь вот что


$config_path_image_upload.=date('Ymd').'/';

if(!file_exists($config_path_image_upload)){ mkdir($config_path_image_upload); }

Папки будут вида YYYYMMDD....

Для вложенности папок, т.е. 2007, в ней 01 02 03 и т.п., придётся значительно поменять код файлообработчика)

Ссылка на сообщение
Поделиться на других сайтах

Для вложенности папок, т.е. 2007, в ней 01 02 03 и т.п., придётся значительно поменять код файлообработчика)

да в принципе не, просто надо добавить еще одну строчку напроверку месяца в папке текущего года...

вопрос в том , чтобы переписать скрипт для чтения этих папок и правильном указании адреса к картинкам. т.е. вставка в посты, в админке управление картинками ) а так вроде ход мыслей правильный


$config_path_image_upload.=date('Y').'/';

if(!file_exists($config_path_image_upload)){ mkdir($config_path_image_upload); }

$config_path_image_upload.=date('m').'/';

if(!file_exists($config_path_image_upload)){ mkdir($config_path_image_upload); }

примерно так )

и это же наверное надо проделать с тумбами (thumbs)

в dle support сказали что такая функция планируется в будущий всерсиях, но конкретных сроков не назвали ((

Изменено пользователем FiTLeSS
Ссылка на сообщение
Поделиться на других сайтах

Просмотрщик файлов в "Управлении картинками" не умеет работать с 2-х уровнемя папок! только 1! Так что всё так, как я писал)

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...