проблема такова. Переименовываю файл, но он переименовывается вместе с расширением. Как оставить расширение на прежнем месте? и так строго чтобы в переменной было чтото типо .htm а не text/html ??? :?: :?: :?:
Выдернуть расширение из имени файла и присоединить к новому имени. Расширение является частью имени файла.
у вас есть имя файла? если да, то разбиваете его на название и расширение, $ar = explode(".",$filename); $ar[0] - название, $ar[1] - расширение
На самом деле получится. Делаем каунт массива и выбираем последний элемент который и будет расширением =)
Большое спасибо! особенно если учесть что я в регулярных ноль без палочки, а если за что то засяду разбирать то уйдет ночька! Разве ниукого нет примера???????
Дак регулярку-то написать пара минут PHP: <?php if(preg_match('/\.(html|php|js)$/i', 'index.php.html.js.php', $ext)) { echo 'newname.'.$ext[1]; } ?>
rename("files/".$_FILES['uploadfile']['name'], "files/1fgh23.xxx"); и што куда вставлять? rename("files/".$_FILES['uploadfile']['name'], "files/1fgh23.$ext"); Так чтоли? Парни сори у меня совсем туго...
if(preg_match('/\.(html|php|js)$/i', 'index.php.html.js.php', $ext)) { echo 'newname.'.$ext[1]; } rename("files/".$_FILES['uploadfile']['name'], "files/$password.$ext"); типо так... но получается что файл называется array (расширение) ....
Иногда хочется плакать и лезть на стенку от таких вопросов. Вы же видите, ё моё, что у меня написано $ext[1], а не $ext !
PHP: if(preg_match('/\.(html|php|js)$/i', 'index.php.html.js.php', $ext)) { echo 'newname.'.$ext[1]; } rename("files/".$_FILES['uploadfile']['name'], "files/$password.$ext[1]"); а почему все начало сохраняться в формате php?))))) HTML: Файл успешно загружен на сервер Fb4hrti12MZO7LqtU5Cqnewname.php Mime-тип загруженного файла: image/jpeg прикольно)) но грустно((
PHP: <? $arr = explode(".", $filename); if(count($arr)>2) { $n = count($arr)-1; $ext = $arr[$n]; $arr[$n] = ""; $name = join(".", $arr); } else { $ext = $arr[1]; $name = $arr[0]; } $ext = расширение $name = имя подставляйте потом куда хотите
дядя не шарю помоги плиз а то я хз что напартачил пожаааалуста сделай а то я ваще ноль..... PHP: <?php // Каталог, в который мы будем принимать файл: $uploaddir = './files/'; $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']); // Копируем файл из каталога для временного хранения файлов: if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile)) { echo "<h3>Файл успешно загружен на сервер</h3>"; } else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; } // Символы, которые будут использоваться в пароле. $chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; // Количество символов в пароле. $max=20; // Определяем количество символов в $chars $size=StrLen($chars)-1; // Определяем пустую переменную, в которую и будем записывать символы. $password=null; // Создаём пароль. while($max--) $password.=$chars[rand(0,$size)]; // Выводим созданный пароль. print "$password"; if(preg_match('/\.(html|php|js)$/i', 'index.php.html.js.php', $ext)) { echo 'newname.'.$ext[1]; } $name = $_FILES['uploadfile']['name']; $arr = explode(".", $filename); if(count($arr)>2) { $n = count($arr)-1; $ext = $arr[$n]; $arr[$n] = ""; $name = join(".", $arr); } else { $ext = $arr[1]; $name = $arr[0]; } rename("files/".$_FILES['uploadfile']['name'], "files/$password.$ext[1]"); echo "<p><b>Mime-тип загруженного файла: ".$_FILES['uploadfile']['type']."</b></p>"; ?>
пожаааалуста сделай а то я ваще ноль..... PHP: <?php // Каталог, в который мы будем принимать файл: $uploaddir = './files/'; $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']); // Копируем файл из каталога для временного хранения файлов: if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile)) { echo "<h3>Файл успешно загружен на сервер</h3>"; } else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; } // Символы, которые будут использоваться в пароле. $chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; // Количество символов в пароле. $max=20; // Определяем количество символов в $chars $size=StrLen($chars)-1; // Определяем пустую переменную, в которую и будем записывать символы. $password=null; // Создаём пароль. while($max--) $password.=$chars[rand(0,$size)]; // Выводим созданный пароль. print "$password"; if(preg_match('/\.(html|php|js)$/i', 'index.php.html.js.php', $ext)) { echo 'newname.'.$ext[1]; } $name = $_FILES['uploadfile']['name']; $arr = explode(".", $filename); if(count($arr)>2) { $n = count($arr)-1; $ext = $arr[$n]; $arr[$n] = ""; $name = join(".", $arr); } else { $ext = $arr[1]; $name = $arr[0]; } rename("files/".$_FILES['uploadfile']['name'], "files/$password.$ext[1]"); echo "<p><b>Mime-тип загруженного файла: ".$_FILES['uploadfile']['type']."</b></p>"; ?>
Проверьте корректность синтактиса. PHP: <?php // Каталог, в который мы будем принимать файл: $uploaddir = './files/'; $uploadfile = $uploaddir.basename($_FILES['uploadfile']['name']); // Копируем файл из каталога для временного хранения файлов: if (copy($_FILES['uploadfile']['tmp_name'], $uploadfile)) { echo "<h3>Файл успешно загружен на сервер</h3>"; } else { echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>"; exit; } // Символы, которые будут использоваться в пароле. $chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; // Количество символов в пароле. $max=20; // Определяем количество символов в $chars $size=StrLen($chars)-1; // Определяем пустую переменную, в которую и будем записывать символы. $password=null; // Создаём пароль. while($max--) $password.=$chars[rand(0,$size)]; // Выводим созданный пароль. print "$password"; // Разрешенные расширения (разделяются через | ) $allowed_extension = 'html|php|js'; if(preg_match('/(\.'.$allowed_extension.')$/i', $_FILES['uploadfile']['name'], $ext)) { rename('files/'.$_FILES['uploadfile']['name'], 'files/'.$password.$ext[1]); echo "<p><b>Mime-тип загруженного файла: ".$_FILES['uploadfile']['type']."</b></p>"; } ?> А вообще, можно хороший отделитель написать, с учетом загруженного расширения. Сейчас нет времени писать, но думаю разобраться несложно.
Код (Text): $name = $_FILES['uploadfile']['name']; $filename = Код (Text): rename("files/".$_FILES['uploadfile']['name'], "files/$password.$ext[1]"); $ext обратите внимание вовсе не массив ps Hello world! ©
откуда у вас в последнем варианте скрипта вообще берётся $ext[1]? метод тыка пригоден для ремонта жигуля, сдачи тестов по русскому.. но никак не для php Hello world! ©