Я столкнулся с небольшой проблемой здесь. У меня есть следующие формы, которые я использую, чтобы предоставить возможность пользователям загружать один или несколько файлов:Как я могу переименовать несколько файлов при загрузке
<form action="RejoinReq.php" method="post" enctype="multipart/form-data">
Attachment 1: <input type="file" name="file[]" id="file" maxlength="500" accept="application/pdf,image/*" />
<input type="submit" name="submit" value="Request" />
</form>
Далее, мне нужно переименовать файл (ы) перед сохранением их на сервер. Для этого я пытаюсь использовать:
RejoinReq.php
<?php
function findexts ($filename) {
$filename = strtolower($filename);
$exts = explode(".", $_FILES["file"]["name"]);
$n = count($exts) - 1;
$exts = $exts[$n];
return $exts;
}
$ext = findexts($_FILES['file']['name']);
$target = "upload/";
$target = $target . $_SESSION['myusername'] . "Rejoin." . $ext;
if (file_exists("upload/" . $_FILES["file"]["name"])) {
//echo $_FILES["file"]["name"] . " already exists. ";
}
else {
move_uploaded_file($_FILES["file"]["tmp_name"],$target);
//echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
Обновлено - Модификация на PHP код
Предупреждение:
findexts()
ожидает параметр 1, чтобы быть строка, массив данныеВнимание:
move_uploaded_file()
ожидает параметр 1, чтобы быть строка, массив с учетом
Прежде всего, нет нужно написать все в шапках вашего кода. Это раздражает. Кроме того, попробуйте использовать атрибут ['multiple'] (http://www.w3.org/TR/html-markup/input.file.html#input.file.attrs.multiple) атрибута' file input' –
, который было не все, но в любом случае я обновил свой код, извиняюсь, чтобы раздражать вас, теперь я добавил 'multiple =" muliple "' в свой код, по-прежнему та же ошибка. –
Код будет работать для 1 цикла _provided, что '$ _FILES [" file "]' is ** not ** empy_ (так что сначала проверьте это). Также: не определяйте функции в цикле и делайте это 'findexts ($ name)', и пусть он снова использует свой параметр, а не суперкоммулят '$ _FILES'. – Wrikken