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 に答える