Загрузка файла не работает, если проверка на загруженные файлы находится в коде - PullRequest
0 голосов
/ 19 сентября 2018

Изображения загружаются нормально, но я хочу, чтобы "else if" проверил, выбран ли какой-либо файл.Это работает:

    <?php
session_start();
    include('includes/conexao.php');
    $fileinfo=PATHINFO($_FILES["image"]["name"]);
    $newFilename=$fileinfo['filename'] ."_". time() . "." . $fileinfo['extension'];
    move_uploaded_file($_FILES["image"]["tmp_name"],"images/perfis/" . $newFilename);
    $location="images/perfis/" . $newFilename;

$todas_fotos = mysqli_query($conexao, "select * FROM esc_usuarios_fotos WHERE img_usu_codigo = '" . $_SESSION['codigo'] . "'");

if( mysqli_num_rows($todas_fotos) > 0) {
        //$path=$location;
        //if(unlink($path)) echo "Deleted file ";
        mysqli_query($conexao,"UPDATE esc_usuarios_fotos SET img_local = '$location' WHERE img_usu_codigo = '" . $_SESSION['codigo'] . "'");
}
else if( mysqli_num_rows($todas_fotos) == 0)
{
        mysqli_query($conexao,"insert into esc_usuarios_fotos (img_local, img_usu_codigo) values ('$location', '" . $_SESSION['codigo'] . "')");
}
else {

};
    header('location:perfil.php');
?>

Вставляется, если изображение отсутствует, но если оно есть, оно обновляется.Но когда я добавляю:

else if (empty($_FILES['image']['name']))
{
header('location:perfil.php');
}

Он возвращает мне неопределенный индекс: расширение в строке 5. Как перейти?

1 Ответ

0 голосов
/ 19 сентября 2018

Перепишите код следующим образом.Здесь мы проверяем, недоступен ли файл в начале кода и перенаправляем, если файл не найден.

<?php
session_start();
if (empty($_FILES['image']['name']))
{
  header('location:perfil.php?error=1');
  return;
}
include('includes/conexao.php');
$fileinfo=PATHINFO($_FILES["image"]["name"]);
$newFilename=$fileinfo['filename'] ."_". time() . "." . $fileinfo['extension'];
move_uploaded_file($_FILES["image"]["tmp_name"],"images/perfis/" . $newFilename);
$location="images/perfis/" . $newFilename;

$todas_fotos = mysqli_query($conexao, "select * FROM esc_usuarios_fotos WHERE 
img_usu_codigo = '" . $_SESSION['codigo'] . "'");

if( mysqli_num_rows($todas_fotos) > 0) {
    //$path=$location;
    //if(unlink($path)) echo "Deleted file ";
    mysqli_query($conexao,"UPDATE esc_usuarios_fotos SET img_local = '$location' WHERE img_usu_codigo = '" . $_SESSION['codigo'] . "'");
 }else {
    mysqli_query($conexao,"insert into esc_usuarios_fotos (img_local, img_usu_codigo) values ('$location', '" . $_SESSION['codigo'] . "')");
 }

и в файле perfil.php вы должны поместить окно

.onload = function () {var url = новый URL (window.location.href);var error = url.searchParams.get ("error");предупреждение if (error == 1) ("Файл не загружен");

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...