单词“Array”在尝试保存图像时添加到每个文件名 - PHP

时间:2013-08-29 09:27:19

标签: php arrays upload image-uploading

我从我的应用程序获取图像到这个PHP代码:

<?php 

$target = "upload/"; 
$name="checks";
$target = $target . basename( $_FILES['uploaded'].$name); 

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 
{
echo "yes";
} 
else {
echo "no";
}
?> 

问题是我上传的图片的每个名称都以“数组”开头。

例如,$name现在是“检查”,因此文件名为“Arraychecks”。

为什么会这样?

感谢您的协助。

3 个答案:

答案 0 :(得分:1)

$_FILES['uploaded']是一个数组。

Array
(
    [name] => Array
        (
            [1] => Array
                (
                    [0] => 
                )

        )

    [type] => Array
        (
            [1] => Array
                (
                    [0] => 
                )

        )

    [tmp_name] => Array
        (
            [1] => Array
                (
                    [0] => 
                )

        )

    [error] => Array
        (
            [1] => Array
                (
                    [0] => 4
                )

        )

    [size] => Array
        (
            [1] => Array
                (
                    [0] => 0
                )

        )

)

您可能正在寻找$_FILES['uploaded']['name']

答案 1 :(得分:1)

$name = $_FILES['checks']['name'];
$fileElementName = 'checks';
$path = 'upload/'; 
$location = $path . $_FILES['checks']['name']; 
move_uploaded_file($_FILES['checks']['tmp_name'], $location); 

现在在您的插入查询中使用$ name

答案 2 :(得分:1)

获取单词Array是将数组转换为字符串的典型症状:

$data = array(10, 20, 30);
var_dump( (string)$data );
// Notice: Array to string conversion
// string(5) "Array"

从代码中可以明显看出$_FILES['uploaded']是一个数组,因为你这样做了:

if(move_uploaded_file($_FILES['uploaded']['tmp_name'], $target)) 

...所以这不对:

$target = $target . basename( $_FILES['uploaded'].$name); 

也许你有这个想法:

$target = $target . basename( $_FILES['uploaded']['name'].$name);