Как преобразовать строку в соответствии с указанными критериями и как применить эту вновь преобразованную строку в качестве имени файла к файлу, загруженному пользователем?

Я использую 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 ответа

Решение
  1. Получите заголовок в вашем PHP-скрипте, используя $_POST['pt_doc_title']
  2. использование strtolower() преобразовать заголовок в нижний регистр
  3. использование str_replace() заменить все пробелы подчеркиванием
  4. использование 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);

Должен работать, если я не сделал что-то неправильно... и я совершенно уверен, что что-то забыл.

Другие вопросы по тегам