
При загрузке хоть какого файла на веб-сайт DLE добавляет префикс к файлу в формате unixtime (к примеру 1266540926_yandex.jpg).
Данный хак, мягко говоря, дозволяет не только лишь убрать префикс перед названием файла, а так же будет инспектировать существует ли файл с таковым же именованием в данной же папке и в данном случае добавит к нему суффикс 1,2,3 и т.д.
К примеру: yandex.jpg, yandex1.jpg, yandex2.jpg
В блоге WordPress суффиксы к названии файла добавляются таковым же образом.
Ставится данный хак до боли просто, для этого будет нужно отредактировать последующие файлы:
./engine/ajax/upload.php
./engine/inc/files.php
Открываем файл ./engine/ajax/upload.php,
Ищем код (в уникальном файле 145 и 146 строчка):
$file_prefix = time() + rand( 1, 100 );
$file_prefix .= "_";
и удаляем его!$file_prefix .= "_";
Дальше ищем (в уникальном файле 158 строчка):
$image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;
И заменяем на:$image_name = totranslit( implode( ".", $img_name_arr ) );
$file_prefix = '';
$number = '';
while ( file_exists( $config_path_image_upload . $image_name . $number . '.' . $type ) ) {
$number = $number+1;
}
$image_name = $image_name . $number . '.' . $type;
$file_prefix = '';
$number = '';
while ( file_exists( $config_path_image_upload . $image_name . $number . '.' . $type ) ) {
$number = $number+1;
}
$image_name = $image_name . $number . '.' . $type;
Дальше ищем (уже лишь в файле ./engine/inc/files.php):
if( $serverfile == '' ) {
И перед сиим кодом вставляем:$img_name_arr = explode( ".", $image_name );
$type = end( $img_name_arr );
$curr_key = key( $img_name_arr );
unset( $img_name_arr[$curr_key] );
$image_name = implode( ".", $img_name_arr );
$file_prefix = '';
$number = '';
while ( file_exists( ROOT_DIR . "/uploads/files/" . $image_name . $number . '.' . $type ) ) {
$number = $number+1;
}
$image_name = $image_name . $number . '.' . $type;
$type = end( $img_name_arr );
$curr_key = key( $img_name_arr );
unset( $img_name_arr[$curr_key] );
$image_name = implode( ".", $img_name_arr );
$file_prefix = '';
$number = '';
while ( file_exists( ROOT_DIR . "/uploads/files/" . $image_name . $number . '.' . $type ) ) {
$number = $number+1;
}
$image_name = $image_name . $number . '.' . $type;
В файле ./engine/inc/files.php проделываем все то же самое!
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.
| #1 написал: WhyMax (27 марта 2010 22:58) | |
|---|---|
|
Группа: Гости Регистрация: -- |
http://whymax.ru/scripts/5-pref.html
направьте внимание, что почти все в коде поменялось, исправлены почти все баги:) |
| ICQ: -- | |
