Как преобразовать строку в соответствии с указанными критериями и как применить эту вновь преобразованную строку в качестве имени файла к файлу, загруженному пользователем?
Я использую PHP, Smarty и MySQL для своего сайта. Я относительно новичок в концепции файлов в PHP и String. Я принимаю "заголовок документа" и "файл" от пользователя. Пользователь вводит любой заголовок, который он / она хочет дать, и загружает файл, используя элемент управления HTML-файлом.
Я хочу преобразовать все символы заголовка документа в маленький регистр, заменить пробелы между двумя словами подчеркиванием и создать из него новую строку. Теперь я хочу переименовать файл, загруженный пользователем с этим именем, а затем сохранить его на сервере. При этом расширение загружаемого файла не должно меняться, оно должно быть сохранено. Но я не понимаю, как мне этого добиться. Может ли кто-нибудь помочь мне в этом отношении, пожалуйста?
<form name="import_tests" action="" method="post" enctype="multipart/form-data">
<div class="terthead">Document Title <input type="text" name="pt_doc_title" id="pt_doc_title" value="" maxlength="50"/></div>
<p class="uploadBtn"><input type="file" name="document_file_name" id="document_file_name"></p>
<input type="submit" name="submit" value="Upload Document" class="c-btn" />
</form>
2 ответа
- Получите заголовок в вашем PHP-скрипте, используя
$_POST['pt_doc_title']
- использование
strtolower()
преобразовать заголовок в нижний регистр - использование
str_replace()
заменить все пробелы подчеркиванием - использование
rename()
функция переименования файла, загруженного пользователем
Это должно помочь вам начать:
if (isset($_POST['submit'])) {
$title = $_POST['pt_doc_title'];
$title = strtolower($title);
$title = str_replace(' ', '_', $title);
// do additional checks and rename the file
}
Я хочу преобразовать все символы заголовка документа в маленький регистр, заменить пробелы между двумя словами подчеркиванием
$string = strtolower(preg_replace("\s+", "_", $string));
Теперь я хочу переименовать файл, загруженный пользователем с этим именем, а затем сохранить его на сервере.
move_uploaded_file($_FILES['upload']['tmp_name'], $dir . "/" . $string);
Должен работать, если я не сделал что-то неправильно... и я совершенно уверен, что что-то забыл.