替代上传图片是否

时间:2016-08-02 06:57:48

标签: php forms image-uploading

我是stackoverflow和PHP的新手,所以我想首先描述我的问题。对不起,如果我的语法不好,我不是本地人。

我创建了一个表单,允许用户使用或不使用图像发布(到数据库),这是代码

$link = mysqli_connect('localhost', 'root', '12345!@#', 'pklapps') or die("Couldnt connect to the server");
//public info dari admin
if (isset($_POST["title"]) && isset($_POST["content"]) && isset($_POST["category"])) {

    $title = $_POST['title'];
    $desc = $_POST['content'];
    $lat = $_POST['latitude'];
    $long = $_POST['longitude'];
    $category = $_POST['category'];
    $image = $_POST['userfile'];

    if (!isset($_FILES['userfile'])) {
        $query = "INSERT INTO public_info (title, content, category) VALUES ('$title','$desc','$category')"; 

        $result = mysqli_query($link, $query);

        if ($result) {
            header('Location: post.php?success');
        } else {
            header('Location: post.php?error');
        }
    } else {
        $fileName = $_FILES['userfile']['name'];
        $target = "uploads/";
        $fileTarget = $target.$fileName; 
        $tempFileName = $_FILES["userfile"]["tmp_name"];

        $result = move_uploaded_file($tempFileName,$fileTarget);
        /*
        *   If file was successfully uploaded in the destination folder
        */
        if ($result) { 
            header('Location: post.php?success'); 
            $query = "INSERT INTO public_info (title, content, category, imagePath) VALUES ('$title','$desc','$category', '$fileTarget')";
            $link->query($query) or die("Error : ".mysqli_error($link)); 
        } else { 
            header('Location: post.php?errimg'); 
        }

        mysqli_close($link);
    }
}   

当我附加图像或文件时表单正常但是当我没有附加图像时它会转到header('Location: post.php?errimg');。请帮帮我,谢谢。

1 个答案:

答案 0 :(得分:1)

将您的if条件从!isset($_FILES['userfile'])替换为empty($_FILES['userfile']['name'])     

    //if (!isset($_POST[]))
    $title = $_POST['title'];
    $desc = $_POST['content'];
    $lat = $_POST['latitude'];
    $long = $_POST['longitude'];
    $category = $_POST['category'];
    $image = $_POST['userfile'];

    if(empty($_FILES['userfile']['name'])) {
        $query = "INSERT INTO public_info (title, content, category) VALUES ('$title','$desc','$category')"; 

        $result = mysqli_query($link, $query);

        if ($result) {
            header('Location: post.php?success');
        }

        else {
            header('Location: post.php?error');
        }
    }
    else {
        $fileName = $_FILES['userfile']['name'];
        $target = "uploads/";
        $fileTarget = $target.$fileName; 
        $tempFileName = $_FILES["userfile"]["tmp_name"];

        $result = move_uploaded_file($tempFileName,$fileTarget);
        /*
        *   If file was successfully uploaded in the destination folder
        */
        if($result) { 
            header('Location: post.php?success'); 
            $query = "INSERT INTO public_info (title, content, category, imagePath) VALUES ('$title','$desc','$category', '$fileTarget')";
            $link->query($query) or die("Error : ".mysqli_error($link)); 
            }
        else { 
            header('Location: post.php?errimg'); 
            }
        mysqli_close($link);
    }
    // $query = "INSERT INTO public_info (title, content, category) VALUES ('$title','$desc','$category')";   
}       ?>