上传图片失败
我在HTML
上做了一个表格,上传了一个图片。问题是,当我检查php
代码$_FILES
数组时,找不到它。上传图片失败
的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
分支(这给了我很多东西e默认图像)。
在此先感谢。
您的表单缺少enctype='multipart/form-data'
属性。没有它,$_FILES
将永远是空的。
了解更多关于在这里:What does enctype='multipart/form-data' mean?
我应该在哪里放置此代码行? –
对不起,愚蠢的问题。我把它放在表格中,它工作。非常感谢! –
@ErumHannan如果您有*新*问题,请通过单击[问问题](http://stackoverflow.com/questions/ask)按钮来提问。如果你有足够的声望,[你可以upvote](http://stackoverflow.com/privileges/vote-up)这个问题。或者,将这个问题“明星”作为最爱,并且您会收到任何新答案的通知。 –
你的正则表达式接受'JGP'图像? –
不要忘记检查PHP中的文件类型,因为可以轻松地跳过javascript。 if($ _ FILES ['fileImg'] ['type'] =='image/png'|| ...){' – jdepypere
我在checkValidation()函数中显示了我的正则表达式。我可以告诉该函数接受文件,如果我比较文件与此正则表达式。 –