我有一个编辑表单,用户可以编辑他/她的信息。 它包含名字,姓氏,用户名,类别(从类别表中选择数据)和图像输入。我想要一个可以检查图像类型,大小,是否为空的函数。实际上,如果用户没有上传照片,则无需检查,但如果用户上传照片,则该功能会检查其文件类型(jpg,png,jpeg),并检查文件大小是否大于1MB。
实际上我的代码在所有输入填写并上传图片时都有效。但如果用户没有上传照片,则此消息将显示为<>。它是更新表格,所以也许用户之前上传了一张照片,他/她不想更改那张照片。所以我的问题是用户无法提交他/她的信息,直到上传图片。
if (isset($_POST['submit']))
{
$Title = test_input($_POST['Title']);
$Category = $_POST['Category'];
$Content = test_input($_POST['Post']);
$Author = test_input($_POST['Author']);
$ref = test_input($_POST['reference']);
$image= $_FILES["img"]["name"];
$imgSize = $_FILES["img"]["size"];
$image_tmp= $_FILES["img"]["tmp_name"];
$traget_dir = "../files/img/content/";
$target_file = $target_dir.basename($_FILES["img"]["name"]);
$ImageFileType=pathinfo($target_file,PATHINFO_EXTENSION);
if(empty($Title))
{
$msg=" * title couldn't be empty";
}
else if(empty($Content))
{
$msg=" * Content couldn't be empty";
}
else if(empty($Author))
{
$msg=" * Author couldn't be empty";
}
else if($image =="")
{
echo $msg=" * you must choose a photo";
$uploadOK=1;
}
else if($ImageFileType !="jpg" && $ImgeFileType != "gif" &&$ImageFileType !="png" )
{
echo $msg=" * only JPG, PNG, GIF are allowed";
}
else if($imgSize > 1024000)
{
echo $msg= " * the photo shouldn't be greater that 1MB";
}
else if(move_uploaded_file($_FILES["img"]["tmp_name"],$target_file))
{
echo $msg1= " * the file ".basename($_FILES['img']['name'])." has been uploaded";
$uploadOk = 0;
}
$query= "UPDATE content SET (`Title`='$Title' ,`Text`= '$Content' ,`Writer`='$Author',`Reference`='$ref',`Image`= '$image') where Content_ID='$id' ";
if(mysqli_query($_SESSION['con'],$query))
{
$msg1="post published";
}
else
{
echo $msg="there was an error occured <br>".mysqli_error($_SESSION['con']);
}here
答案 0 :(得分:1)
您可以通过以下方式获取文件大小:
$_FILES['img']['size']
要检查是否有图像文件或图像文件格式,您可以getimagesize() $_FILES['img']['tmp_name']
检查error
,如下所示:php how to use getimagesize() to check image type on upload
检查文件是否已上传,您可以使用if ($_FILES['img']['error']==4){
echo 'Not uploaded';
}
进行检查。错误号4表示文件未上传:
- projects
-- 1
--- name: some project
--- organisation: awesome organisation
--- users
---- uid1: true
---- uid2: true
- users
-- uid1
--- name: Bob
--- email: bob@test.com
--- tel: 020 3456 3456
-- uid2
--- name: tom
--- email: tom@test.com
--- tel: 020 3456 3456
在这里,您可以看到有关Error Messages Number
的更多信息