Php 回显重命名文件时,其显示单个字符

Php 回显重命名文件时,其显示单个字符,php,upload,echo,rename,Php,Upload,Echo,Rename,我正在慢慢地开发一个图像上传程序,想知道为什么在回显我重命名的文件时,它只给了我一个字符而不是整个文件。 有什么原因会这样做吗? 它成功地将图像上传为phil_546d196082606.jpg,每个图像的编号不同 这是我的密码 <?php if (isset($_POST['addpart'])) { $image = $_FILES['images']['tmp_name']; $name = $_POST['username']; $i = 0;

我正在慢慢地开发一个图像上传程序,想知道为什么在回显我重命名的文件时,它只给了我一个字符而不是整个文件。 有什么原因会这样做吗?

它成功地将图像上传为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是一个字符串,php中的字符串是数组,其中每个字母都有一个索引$filename[o]是第一个字母,依此类推

$filename[]=$name .'_'. uniqid() . '.' . $fileData['extension'];
Filename是字符串。它是:$name。号码

比如菲利普12345

因此,如果我们有:

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);
}
Filename是字符串。它是:$name。号码

比如菲利普12345

因此,如果我们有:

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);
}

请尝试下面的代码块

$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'];
move_uploaded_file($key, "image/" . end($fileName));
copy("image/" . end($fileName), "image_thumbnail/" . end($fileName));

他确实在循环中使用$key。移动文件:移动上传的文件($key,“image/”)$fileName);他确实在循环中使用$key。移动文件:移动上传的文件($key,“image/”)$fileName);非常感谢,当插入到行的不同列时,我会使用相同的字符串$filename[0]和$filename[1]吗?@BrianCherdak我不太理解这个问题,但是$filename[0]将包含名字等等。当我将文件上载到数据库时,例如,一篇包含多个图像的新闻文章,我想在不同的列中插入不同的图像作为值,我会添加[0]和[1]吗?@BrianCherdak如果你想插入图像名称,是的。那些
[]
只需将变量转换成适当的数组非常感谢你,我会使用相同的字符串$filename[0]和$filename[1],当插入到一行的不同列时?@BrianCherdak我不太明白这个问题,但是$filename[0]将包含名字等等。当我将文件上载到数据库时,例如一篇包含多个图像的新闻文章,并且我想将不同的图像作为值插入不同的列时,我会添加[0]和[1]吗?@BrianCherdak如果要插入图像名称,请选择“是”。那些
[]
只需将变量转换为正确的数组即可