Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проверить существование файла и если файл есть добавить +1 к названию

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
AndreyPetrov
Отправлено: 05 Сентября, 2013 - 07:51:25
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Доброго времени суток!

Ребята, такой вопрос.

Есть форма загрузки файла, все работает хорошо.
Но столкнулся с проблемой такой.

К примеру ID новости 1578. Я у загружаемых файлов меняю название на
1578.gif - основная картинка.

Остальные
1578_0.gif
1578_1.gif
1578_2.gif
1578_3.gif

Каким образом сделать так, чтобы при добавлении еще картинок, счет продолжался дальше?

Т.е. я дополнительно гружу еще картинки и нужно им продолжить +1
 
 Top
Alexandr_Voronin
Отправлено: 05 Сентября, 2013 - 08:13:17
Post Id


Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2013  


Помог: 1 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. $file_name = '1578_2879.gif';
  4. preg_match('/(.+\_)([0-9]+)(\.gif)/',$file_name,$out);
  5.  
  6. $counter =$out[1]+1;
  7. $file_name_new = $out[0].$counter.$out[3];
  8.  
  9.  


Ну вроде как то так.
 
 Top
DelphinPRO
Отправлено: 05 Сентября, 2013 - 11:37:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




лучше воспользуйтесь каким-либо уникальным идентификатором.
можно time() или uniqid()
т.е. имена файлов генерить как-то так
PHP:
скопировать код в буфер обмена
  1. $main = '1578';
  2. $file = $main . uniqid() . '.gif';


и не нужно заморачиваться с продолжением нумерации

А поиск можно выполнять по маске

PHP:
скопировать код в буфер обмена
  1. $images = glob(PATH_TO_FILES . $main . '*.gif');


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
AndreyPetrov
Отправлено: 06 Сентября, 2013 - 07:33:36
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




Alexandr_Voronin, спасибо, вроде работает.

DelphinPRO, я думал так сделать, просто удобнее, когда видно к какой новости относиться картинка.
Решил сделать так. Оставлять оригинальное название изображения и добавлять к нему uniqid.
Потому как не нужно будет пробегать весь каталог на поиск одинаковых названий.
Сейчас получается так, что приходится находить одинаковые названия, а в каталоге может быть тысячи файлов...
 
 Top
Ch_chov
Отправлено: 06 Сентября, 2013 - 08:07:56
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




AndreyPetrov, использовать название файла для того, чтобы хранить доп. информацию о нём не всегда удобно. В общем случае лучше записывать информацию о файле в БД.

http://api.drupal[dot]ru/api/function/file_create_filename
 
 Top
DelphinPRO
Отправлено: 06 Сентября, 2013 - 09:33:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




AndreyPetrov пишет:
Оставлять оригинальное название изображения и добавлять к нему uniqid.
а я что предложил? O_o


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
AndreyPetrov
Отправлено: 06 Сентября, 2013 - 09:36:55
Post Id


Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




DelphinPRO, ну да, как вы и написали. Когда писал, то проснулся только, не правильно сформулировал написанное)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB