Загрузка файла PHP, если оставлено пустым - PullRequest
1 голос
/ 14 марта 2012

У меня возникли некоторые проблемы с загрузкой моего файла, все работает нормально и все, но я собираюсь обновить свои данные, и я хочу изменить все, кроме изображения, и нажать «Отправить», я получаю сообщение «Неверное изображение», яне обновлять изображения, чтобы в текстовом поле ввода файла не было файла, есть ли способ обойти это?

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 ]

4 голосов
/ 14 марта 2012

Вам необходимо проверить фактическую загрузку, прежде чем делать НИЧЕГО, если данные загрузки:

if ($_FILES['image']['error'] === UPLOAD_ERR_OK) {
   ... got an upload ...
}
1 голос
/ 14 марта 2012

Просто поместите if(isset($_FILES['image'])) вокруг всего блока. Если изображение не загружено, записи файла там не будет.

0 голосов
/ 14 марта 2012

Будет отправлено, если и только если изображение загружено.

<?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>";
            }
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...