move_uploaded_file()恰好需要2个参数,给定3个

时间:2019-05-18 09:30:08

标签: php

这段代码给我错误

  

move_uploaded_file()恰好需要2个参数,给定3个参数

if(isset($_POST["upload"])){

    $target="images/".basename($_FILES['image']['name']);
    $db=mysqli_connect("localhost","root","","photos");

    $image=$_FILES['image']['name'];
    $text=$_POST['text'];

    $sql="INSERT INTO images(image,text) VALUES ('$image','$text')";
    mysqli_query($db,$sql); 

    if(move_uploaded_file($_FILES['image'],['tmp_name'],$target)){
        $msg="image upload successful";
    }else{
        $msg="there was a problem uploading the image";
    }
}

1 个答案:

答案 0 :(得分:2)

您的代码语法错误:

if(move_uploaded_file($_FILES['image'],['tmp_name'],$target)){
                                    --^--

逗号用于分隔参数,因此move_uploaded_file带有3个参数,第2个是具有一个字符串元素“ tmp_name”的数组。您应该删除该逗号,因为它不需要为数组建立索引。


还要注意,您永远不要将用户输入直接放在SQL查询字符串中,这很危险。阅读有关SQL注入和PHP的PDO驱动程序的更多信息。