无法上传图片

时间:2013-08-16 22:13:48

标签: php html

我在HTML制作了一个表单,其中包含上传图片的选项。问题是,当我在$_FILES代码中检查php数组时,找不到它。

HTML表格:

<form method="POST" action="addProduct.php" onsubmit="return checkValidation()"> 
Image(optional): <input type="file" name="fileImg" accept="image/*" id="fileImg">
<input id="submitProduct" type="submit" name="submitBtn" value="Submit product" onclick="checkValidation()"/>
</form>

checkValidation()功能:

function checkValidation(){
    var regex = /\.(jpg|JGP|jpeg|JPEG|png|PNG|gif|GIF)$/;
    if (($('#fileImg').val()) && (!(regex.test($('#fileImg').val()))))
    {
        return false;
    }
}

php代码:

if(isset($_POST["submitBtn"])){
    if(!(empty($_FILES)))
    {
        if (file_exists('uploads/'.$_FILES["fileImg"]["name"]))
        {
            echo $_FILES["fileImg"]["name"]." already exists. ";
        }
        else
        {
            move_uploaded_file($_FILES["fileImg"]["tmp_name"], 'uploads/'. $_FILES["fileImg"]["name"]);
            $path = $_FILES["fileImg"]["name"];
        }
    }
    else
        $path = 'no_photo.jpg';

问题是在PHP代码中,它总是跳转到else分支(这给了我一些默认图像)。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您的表单缺少enctype='multipart/form-data'属性。没有它,$_FILES将永远是空的。

在此处详细了解: What does enctype='multipart/form-data' mean?