上传图片$ _FILES未设置

时间:2014-04-04 11:20:53

标签: php

我试图将文件上传到我的服务器 但问题是if(isset($ _ FILES [' upl']))总是返回false

我的php:

if($_SERVER['REQUEST_METHOD'] == 'POST')
$allowed = array('png', 'jpg', 'gif', 'jpeg', 'bmp');
{
    if(isset($_FILES['upl']) )
    {
        echo 'test';
        $extension = pathinfo($_FILES['upl']['name'], PATHINFO_EXTENSION);

        if(!in_array(strtolower($extension), $allowed)){
            echo json_encode(array('success'=> false, 'message'=> 'No supported file type'));
            exit;
        }


    $filename = "test".$extension;
    if(move_uploaded_file($_FILES['upl']['tmp_name'], $url.'images/uploads/'.$filename)){
        echo json_encode(array('success'=> true, 'url'=> $weburl .'images/uploads/'. $filename, 'filename' => $_FILES['upl']['name']));
        exit;
    }
  }
}

HTML:

<form action="" method="post">
                            <label for="file">Logo</label><input type="file" name="upl">
                            <input type="submit" disabled='disabled' value=''>
                        </form>

如果是在页面检查中,我从不使用动作,使用一个不解决问题

7 个答案:

答案 0 :(得分:9)

你错过了

enctype="multipart/form-data"

形式

<form action="" method="post" enctype="multipart/form-data">

答案 1 :(得分:3)

您需要更改

<form action="" method="post">

<form action="" method="post" enctype="multipart/form-data">

答案 2 :(得分:3)

您忘记了enctype中的form

<form action="" method="post" enctype="multipart/form-data">
    <label for="file">Logo</label>
    <input type="file" name="upl" />
    <input type="submit" disabled="disabled" value="" />
</form>

答案 3 :(得分:2)

您应该在表单标记中添加属性 enctype =“multipart / form-data”,以将文件上传到服务器....

答案 4 :(得分:2)

上传文件时非常重要的属性是enctype

<form action="" method="post" enctype="multipart/form-data">

答案 5 :(得分:2)

对于文件上传,您需要添加属性:

enctype="multipart/form-data"

因此,您的更新代码应为:

<form action="" method="post" enctype="multipart/form-data">

答案 6 :(得分:1)

您在from属性中错过了enctype参数。 如果您使用GET方法 进行文件上传,则没有必要。但是如果你使用POST方法进行文件上传,那么你的表单参数应该是这样的,

<form method="post" action="upload.php" enctype="multipart/form-data">