Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Загрузка файлов 
:(
    Опции темы
Гость_Игорь
Дата 4.1.2005, 11:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Делаю загрузку файлов определенных типов zip, doc, jpg. Если название файла на русском языке или с пробелами его потом не скачать. Как сделать что бы файл переименовывались, но при этом сохранялось расширение файла.
Например, делаю так:
Код
$upload_file_name = str_replace(".doc","($date).doc",$upload_file_name);
$upload_file_name = str_replace(".zip","($date).zip",$upload_file_name);
$upload_file_name = str_replace(".rar","($date).rar",$upload_file_name);


где $date дата отправления файла, но при этом переименовывается не весь файл, а только конец названия файла.

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

  Вверх
Mont
Дата 4.1.2005, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Vingrad developer
Сообщений: 274
Регистрация: 13.11.2004
Где: Altay

Репутация: 8
Всего: 12



Код

$Name_file=pathinfo($upload_file_name);
$upload_file_name=($date).$Name_file["extension"];

В итоге получишь название файла ($data), а расширение то же что и было.


Добавлено @ 12:18
Упустил из виду -
Код

$upload_file_name="(".$date.").".$Name_file["extension"];


так правильней. smile
если скобки не нужны - можешь убрать, но точку (ту что справа от последней скобки) оставь


--------------------
"Если однажды Вдруг
Меня не окажется вовсе
в заповедной заветной тарелке
Твоего праведного сновидения
Знай - Неуловимые мстители настигли меня."
© Егор Летов
PM MAIL ICQ   Вверх
Guest
Дата 5.1.2005, 14:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











не получилось так переименовывается весь файл, а расширение пропадает.
  Вверх
IZ@TOP
Дата 5.1.2005, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Попробуй так:

Код

<?php

$oFileName = "hnfwhef8934[99].txt";

$date = date("dmyHis");

echo $nFileName = preg_replace("/[a-zA-Z0-9\-\.\_\)\(\[\]\{\}]*?\.([a-zA-Z0-9]*?)/ui", "new-$date.\\1", $oFileName);

?>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 11.1.2005, 16:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











При этом если есть в названии файла точка получается new-data. new-data. new-data. и так далее сколько точек столько new-data. что не совсем правильно.
  Вверх
IZ@TOP
Дата 11.1.2005, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Код

<?php

$oFileName = "hnfwhef8934[99].txt";

$date = date("dmyHis");

echo $nFileName = preg_replace("/^[a-zA-Z0-9\-\.\_\)\(\[\]\{\}]*?\.([a-zA-Z0-9]*?)$/ui", "new-$date.\\1", $oFileName);

?>


А так?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 12.1.2005, 09:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











СПАСИБО!!! так работает.
А как быть если в названии есть пробелы или русские буквы, люди могут любой файл отправить.
  Вверх
IZ@TOP
Дата 12.1.2005, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Код
<?php

$oFileName = "hnfwhef8934[99].txt";

$date = date("dmyHis");

echo $nFileName = preg_replace("/^.*?\.([a-zA-Z0-9]{2,8})$/ui", "new-$date.\\1", $oFileName);

?>
Попробуй так. Только расширения у файлов в таком случае будут только на английском обрабатываться, и расширение должно быть не менее 2 и не более 8 символов в длинну.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 12.1.2005, 11:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Нет не срабатывает. Если файл с пробелами или с русскими буквами переименование не происходит.
  Вверх
IZ@TOP
Дата 12.1.2005, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Ладно, тогда так:

Код

$e = explode('.', $oldFileName);
$ext = array_pop($e);
$newFileName = implode('.', $e).'.'.$ext;



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 12.1.2005, 14:55 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо за помощь, но и так не срабатывает. smile
  Вверх
IZ@TOP
Дата 12.1.2005, 16:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Цитата(Guest @ 12.1.2005, 15:55)
Спасибо за помощь, но и так не срабатывает.

Что значит не срабатывает? Ща проверим... блин, ты меня прям напугал!!!

Код

$oldFileName = 'фАЙЛО, NN43[01]b{1}.avi';
$e = explode('.', $oldFileName);
$date = date('dmYHi');
$ext = array_pop($e);
echo $newFileName = $date.'.'.$ext;



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Guest
Дата 12.1.2005, 18:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











БОЛЬШОЕ спасибо!!!
Так работает!!!
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.4212 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.