2

我制作了一个表格,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分支(这给了我一些默认图像)。

提前致谢。

4

1 回答 1

1

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

在此处阅读更多信息:enctype='multipart/form-data' 是什么意思?

于 2013-08-16T22:19:06.337 回答