PHP文件上传,如果留空

时间:2012-03-14 17:49:13

标签: php file-upload

我的文件上传有点问题,它工作正常,但我转到更新我的数据,我想更改除图像以外的所有内容并点击提交,我收到无效图片消息,我是没有更新图像所以文件输入文本框中没有文件,有没有办法绕过这个?

if (($_FILES["image"]["type"] == "image/jpeg") || ($_FILES["image"]["type"] == "image/pjpeg")){
            if ($_FILES["image"]["error"] > 0){
                echo $_FILES["image"]["error"];
            }else{
                move_uploaded_file($_FILES["image"]["tmp_name"],
                "../upload/CV_1_" . date("Ymd") . $_FILES["image"]["name"]);                                                                    
                $class->update($id, $text, $image);
                echo "<div style='padding-left:50px'><strong>Updated!</strong></div>";
            }
        }else{
            echo "<div style='padding-left:50px'><strong>Invalid Image!</strong></div>";
        }

上面代码的作用是获取文件,查看是否有图像,如果有任何错误,请显示它们,然后将文件移动到正确的文件夹中并更新我的数据库。

这是表格......

<form action="CV.php?action=updatesubmit" method="post" enctype="multipart/form-data">
<input type="hidden" value="<?php echo $array['id']; ?>" name="id" />
<p>
<label for="text" style="vertical-align:top;">Text</label>
<textarea name="text" id="text" cols="70" rows="20"><?php echo $array['text']; ?></textarea>
</p>

<p>
<label for="image">Image</label>
<input type="file" name="image" id="image" value="<?php echo $array['image']; ?>" />
</p>

<p>
<input type="submit" name="submit" id="submit" value="Update" />
</p>

</form>

我希望我有道理,我有把某些东西绑起来的习惯,听起来不错,但其他人不会知道我在说什么。

玩了我的代码并且这被建议但是它不起作用,我可能做错了。

    if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {

    if (($_FILES["image"]["type"] == "image/jpeg") || ($_FILES["image"]["type"] == "image/pjpeg")){
        if ($_FILES["image"]["error"] > 0){
            echo $_FILES["image"]["error"];
        }else{
            move_uploaded_file($_FILES["image"]["tmp_name"],
            "../upload/CV_1_" . date("Ymd") . $_FILES["image"]["name"]);    
}
            $class->update($id, $text, $image);
            echo "<div style='padding-left:50px'><strong>Updated!</strong></div>";
        }
    }else{
        echo "<div style='padding-left:50px'><strong>Invalid Image!</strong></div>";
    }

3 个答案:

答案 0 :(得分:4)

在使用上传数据执行ANYTHING ELSE之前,您需要检查实际上传:

if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
   ... got an upload ...
}

答案 1 :(得分:1)

只需将if(isset($_FILES['image']))放在整个街区。如果没有上传图像,则文件条目不会出现。

答案 2 :(得分:0)

当且仅当图片上传时才会提交。

<?php
if ($_FILES["image"]["tmp_name"] && $_FILES["file"]["error"] < 0){
    if (($_FILES["image"]["type"] == "image/jpeg") || ($_FILES["image"]["type"] == "image/pjpeg")){
                if ($_FILES["image"]["error"] > 0){
                    echo $_FILES["image"]["error"];
                }else{
                    move_uploaded_file($_FILES["image"]["tmp_name"],
                    "../upload/CV_1_" . date("Ymd") . $_FILES["image"]["name"]);                                                                    
                    $class->update($id, $text, $image);
                    echo "<div style='padding-left:50px'><strong>Updated!</strong></div>";
                }
            }else{
                echo "<div style='padding-left:50px'><strong>Invalid Image!</strong></div>";
            }
}
?>