我在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分支(这给了我一些默认的图像)。
提前谢谢。
发布于 2013-08-16 22:19:06
您的表单缺少enctype='multipart/form-data'属性。没有它,$_FILES将永远是空的。
在这里阅读更多相关信息:What does enctype='multipart/form-data' mean?
https://stackoverflow.com/questions/18282904
复制相似问题