首页 > 解决方案 > move_uploaded_file() 需要 2 个参数,3 个给定

问题描述

这段代码给了我错误

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

标签: php

解决方案


您的代码语法错误:

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

逗号是用来分隔参数的,所以move_uploaded_file用3个参数调用,第2个是一个字符串元素的数组,“tmp_name”。您应该删除该逗号,因为它不需要索引数组。


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


推荐阅读