| Навигация по сайту |
| |
|
 |
|
|
 |
|
 |
| |
Сегодня нужно было загрузить порядка 30 изображений, все бы было хорошо, но имена у этих картинок были все разные и не красивые. И как Вы уже понял мне нужно было их переименовать, для решения этой проблемы было 2 способа: Первый из них, это потратить кучу времени переименновывая все изображения вручную, а второй - это подправить код движка так, чтобы все происходило автоматически при загрузки их на сервер, что я собственно и сделал. Решил поделится, вдруг кому пригодится :-)
Установка хака переименования загруженных файлов и картинок:
- Открываем engine/ajax/upload.php
- Находим:
$image_name = totranslit( convert_unicode( implode( ".", $img_name_arr ), $config['charset'] ) ) . "." . $type;
- Заменяем на:
$imagename = totranslit( trim( htmlspecialchars( strip_tags( convert_unicode( $_POST['imagename'], $config['charset'] ) ) ) ) );
if ( $imagename != '' ) $image_name = $imagename . '.' . $type; else $image_name = totranslit( convert_unicode( implode( ".", $img_name_arr ), $config['charset'] ) ) . "." . $type;
- Открываем engine\inc\files.php
- Находим:
$imageurl = trim( htmlspecialchars( strip_tags( $_POST['imageurl'] ) ) );
- Ниже вставляем:
$imagename = totranslit( trim( htmlspecialchars( strip_tags( $_POST['imagename'] ) ) ) );
- Находим 2 раза:
if( $image_name != "" ) { $curr_key = key( $img_name_arr ); unset( $img_name_arr[$curr_key] ); $image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type; }
- Заменяем на:
if ( $imagename != '' ) $image_name = $imagename . '.' . $type; elseif ( $image_name != '' ) { $curr_key = key( $img_name_arr ); unset( $img_name_arr[$curr_key] ); $image_name = totranslit( implode( '.', $img_name_arr ) ) . '.' . $type; }
- Находим:
<div>{$lang['upload_t_size']} <input class="edit bk" type="text" name="t_size" id="t_size" size=9 value="{$config['max_image']}"> px <select name="t_seite" id="t_seite"><option value="0" {$t_seite_selected[0]}>{$lang['upload_t_seite_1']}</option><option value="1" {$t_seite_selected[1]}>{$lang['upload_t_seite_2']}</option><option value="2" {$t_seite_selected[2]}>{$lang['upload_t_seite_3']}</option></select></div>
- Ниже вставляем:
<div>Изменить имя файла на: <input class="edit bk" type="text" name="imagename" size="55" /></div>
- Вот и все. Данный хак, действует как при массовой, так и при обычной загрузки.
|
|
 |
|
 |
| |
Автор: Брупт (DLE-Infa.Ru)
Категории новости: Хаки Ключевые слова новости: хак, dle, изображения, фотографии
|
|
 |
|
 |
| |
|
|
 |
|
 |
 |
#2 Автор комментария: Брупт Дата написания комментария: 3 января 2011 21:12 |
 |
| |
 Дата рег.: 16.04.2009 Комментариев: 82 Публикаций: 167 | Если картинки с непонятными названиями, например: htmd.jpg, 4Hd3r.jpg, 4893kd.png и т.д. то при их загрузки они будут иметь название:
дата_htmd.jpg, дата_4Hd3r.jpg, дата_4893kd.png и т.д.
А благодаря этому хаку можно ввести в поле любое название, например foto и все изображения при загрузки на сервер, будут иметь имя: дата_foto.jpg, что намного лучше.
P.S. Если сделать меньше, то название группы к которой относится пользователь будет длиннее, чем сам аватр, будет вообще не красиво )
| | цитировать |
|
|
 |
|
 |
 |
#3 Автор комментария: SEOshnik Дата написания комментария: 4 января 2011 00:10 |
 |
| |
 Дата рег.: 3.01.2011 Комментариев: 12 Публикаций: 0 | 1). А дата она как, посекундная? Например если я загружаю за 1 минуту несколько изображений. 2). Чтобы заменять оригинальные названия картинок на свои, типа (foto/image), где что нужно заменить? 3). Возможно ли вместо вставки перед именем "дата" сделать случайную генерацию не повторяющихся символов в 5-8 знаков, типа как пароли генерируют? 
| | цитировать |
|
|
 |
|
 |
 |
#7 Автор комментария: SEOshnik Дата написания комментария: 5 января 2011 21:35 |
 |
| |
 Дата рег.: 3.01.2011 Комментариев: 12 Публикаций: 0 | В 8.5 вместо этого кода: <div>{$lang['upload_t_size']} <input class="edit" type="text" name="t_size" id="t_size" size=9 value="{$config['max_image']}"> px <select name="t_seite" id="t_seite"><option value="0" {$t_seite_selected[0]}>{$lang['upload_t_seite_1']}</option><option value="1" {$t_seite_selected[1]}>{$lang['upload_t_seite_2']}</option><option value="2" {$t_seite_selected[2]}>{$lang['upload_t_seite_3']}</option></select></div> вот этот <div>{$lang['upload_t_size']} <input class="edit bk" type="text" name="t_size" id="t_size" size=9 value="{$config['max_image']}"> px <select name="t_seite" id="t_seite"><option value="0" {$t_seite_selected[0]}>{$lang['upload_t_seite_1']}</option><option value="1" {$t_seite_selected[1]}>{$lang['upload_t_seite_2']}</option><option value="2" {$t_seite_selected[2]}>{$lang['upload_t_seite_3']}</option></select></div> Установил, только вот что это за даты такие 1294253599 ? Что-то другое можно поставить?
| | цитировать |
|
|
 |
|
 |
 |
#8 Автор комментария: Брупт Дата написания комментария: 5 января 2011 22:46 |
 |
| |
 Дата рег.: 16.04.2009 Комментариев: 82 Публикаций: 167 | Это стандартный функционал DLE, к хаку отношения не имеет. Сделано для того чтобы не случилось совпадение названий загруженных изображений. Можно поменять или удалить в файле engine/inc/ files.php строчка $file_prefix = time() + rand( 1, 100 ); P.S. Код в новости поправил
| | цитировать |
|
|
 |
|
 |
 |
#9 Автор комментария: Александр Дата написания комментария: 6 апреля 2011 22:22 |
 |
| |
 Дата рег.: -- Комментариев: 0 Публикаций: 0 | А как сделать, чтобы не нужно было каждый раз писать название желаемое? мне например нужно чтобы название сайта добавлялось ну и время. Сделал так:Вместо: $imagename = totranslit( trim( htmlspecialchars( strip_tags( $_POST['imagename'] ) ) ) ); Вставил: $imagename = "адрес сайта"; Работает, ну и конечно в engine/ajax/upload.php ничего не вносил, вроде все правильно сделал? ничего лишнего не нужно убрать?
| | цитировать |
|
|
 |
|
 |
 |
#10 Автор комментария: Брупт Дата написания комментария: 8 апреля 2011 15:05 |
 |
| |
 Дата рег.: 16.04.2009 Комментариев: 82 Публикаций: 167 | В engine/ajax/ upload.phpНайти: $image_name = totranslit( convert_unicode( implode( ".", $img_name_arr ), $config['charset'] ) ) . "." . $type; Заменить: $image_name = 'Адрес сайта.' . $type; В engine\inc\ files.phpНайти: if( $image_name != "" ) { $curr_key = key( $img_name_arr ); unset( $img_name_arr[$curr_key] ); $image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type; } Заменить на: $image_name = 'Адрес сайта.' . $type; P.S. В конце адреса сайта точка обязательна )
| | цитировать |
|
|
 |
|
 |
|
|
| Популярные новости |
|
|
 |
|