Я загружаю файлы через php. Количество загружаемых файлов определяется значением, которое хранится в базе данных. Итак, допустим, это значение равно 3, а мой код показывает три ввода файла html. Это работает. Я также могу переименовать один файл. рабочий фильтр расширения и ограничения размера. Но когда я попытался сделать это с несколькими, я уложил … Новое имя должно быть «числом элементов списка» – «базовым именем файла». Пример:
1-thisisanimage.jpg
2-anotherimage.jpg
3-andthisalso.jpg
Я пробовал с foreach, но я думаю, что я слишком сложный. Я также пробовал разные сценарии из Интернета, но ни один из них действительно не мог этого сделать. Кто-нибудь? 🙂
if (!file_exists("uploads/".$date."-".$email."-vid-".$videoID)) { mkdir("uploads/".$date."-".$email."-vid-".$videoID."/", 0777, true); } $imagecounter = 0; $_FILES["file"] = array(); foreach ($_FILES["file"] as $file) { $imagecounter++; $filename = $_FILES["file"]["name"]; $file_basename = substr($filename, 0, strripos($filename, '.')); // get file extention $file_ext = substr($filename, strripos($filename, '.')); // get file name $filesize = $_FILES["file"]["size"]; $allowed_file_types = array('.jpg','.jpeg','.png','.gif'); if (in_array($file_ext,$allowed_file_types) && ($filesize < 200000)) { // Rename file $newfilename = "$imagecounter-".$file_basename . $file_ext; if (file_exists("uploads/".$date."-".$email."-vid-".$videoID."/" . $newfilename)) { // file already exists error echo "You have already uploaded this file."; } else { move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/".$date."-".$email."-vid-".$videoID."/" . $newfilename); echo "File uploaded successfully."; } }