我有一个简单的注册表单,用户可以上传个人资料图片,如果用户没有,它应该采用名为person-icon.png的默认图片名称。
当我注册用户并上传图片时,它可以正常工作,但是如果我将其留空,则不要做任何事情并将该列插入数据库空白
if(isset($_FILES['image'])){
$img = $_FILES['image']['name'];
}
else if(empty($_FILES['image']['name'])){
$img = 'person-icon.png';
}
我已经尝试过这些选项:
选项1:
if (empty($_FILES['image'])){
$img = 'person-icon.png';
}
else{
$img = $_FILES['image']['name'];
}
选项2:
if($_FILES["image"]["error"] == 4)
选项3:
if($_FILES["image"]["name"] == "")
答案 0 :(得分:0)
为了检查文件是否已上传,您必须查找tmp_name
,因为这是包含服务器上文件内容的实际副本的内容。
我会做这样的事情:
$file = $_FILES['file']['tmp_name'];
if (!file_exists($file)){
//no image
}
else{
//image
}
只要您不上传该表单中的其他文件,您也可以检查$ _FILES:
if(empty($_FILES)){
//no image
}
else{
//image
}
有关详细信息,请查看文件上传的official manual 我希望这有助于你:)
答案 1 :(得分:0)
您可以检查$ _FILE ['image'] ['name']不等于“”这项工作; 见代码:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="image" id="image">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
<?php
//var_dump($_FILES);
$default_pic =" pic.png";
if (isset($_FILES['image'])){
if($_FILES['image']['name'] != ""){
echo "has pic";
}
else{
$_FILES['image']['name'] = $default_pic;
echo "has no pic";
}
}
?>