Я медленно работаю над загрузчиком изображений и удивляюсь, почему при отображении моих переименованных файлов это дает мне один символ вместо всего этого.
Есть ли причина, по которой он будет этим заниматься?
Это делает, успешно загрузить изображение как phil_546d196082606.jpg с другим номером для каждого изображения
Вот мой код
<?php
if (isset($_POST['addpart'])) {
$image = $_FILES['images']['tmp_name'];
$name = $_POST['username'];
$i = 0;
foreach ($image as $key) {
$fileData = pathinfo(basename($_FILES["images"]["name"][$i]));
$fileName = $name .'_'. uniqid() . '.' . $fileData['extension'];
move_uploaded_file($key, "image/" . $fileName);
copy("image/" . $fileName, "image_thumbnail/" . $fileName);
$i++;
}
echo 'Uploaded<br>';
$fileName1 = $fileName[0];
$fileName2 = $fileName[1];
$fileName3 = $fileName[2];
echo 'Main Image - '.$fileName1.'<br>';
echo 'Extra Image 1 - '.$fileName2.'<br>';
echo 'Extra Image 2 - '.$fileName3.'<br>';
echo '<hr>';
}
?>
$ filename — это строка, а строки в php — это массивы, в которых каждая буква имеет индекс. $ filename [o] — первая буква и т. д. Использование.
$filename[]=$name .'_'. uniqid() . '.' . $fileData['extension'];
Попробуйте приведенный ниже блок кода
$fileName[] = $name .'_'. uniqid() . '.' . $fileData['extension'];
move_uploaded_file($key, "image/" . end($fileName));
copy("image/" . end($fileName), "image_thumbnail/" . end($fileName));
$fileName = $name .'_'. uniqid() . '.' . $fileData['extension'];
Имя файла — это строка. Это: $ name. число.
Например, philip12345.
Так что если у нас есть:
philip
012345
$fileName[0] = p
$fileName[1] = h
Также вы перезаписываете имя файла в каждом цикле. Попробуйте сохранить его в массив и распечатать, вот код:
$fileNames = array();
foreach ($image as $key)
{
$fileName = $name .'_'. uniqid() . '.' . $fileData['extension'];
fileNames[$i] = $fileName;
}
echo $fileNames[0];
echo $fileNames[1];
echo $fileNames[2];
Вы также можете использовать цикл foreach для просмотра массива с именами файлов и печати каждого элемента, это здорово, потому что он будет работать с любым количеством изображений, а не только с 3:
foreach ($fileNames AS $key2)
{
echo ($key2);
}