загружать файлы только с определенным расширением - PullRequest
0 голосов
/ 01 июня 2018

Это мой файл редактирования,

Это мой $ _POST

<?php 

            if(isset($_POST['submit']) ){

              $id          = $connect->real_escape_string($_POST['id']);
              $name        = $connect->real_escape_string($_POST['name']);
              $description =$connect->real_escape_string($_POST['description']);

              $image    = $_FILES['image'];
              $tmp_file = $_FILES['image']['tmp_name'];
              $file_size= $_FILES['image']['size'];
              $type_file= $_FILES['image'] ['type'];

                  if(edit_portfolio($id, $name, $description, $image)) {#1
                        $type     = "msg-scs";
                        $location = "mp_showdata.php";
                        $message  = "portfolio successfully edited";
                        redirect($type,$location, $message);      
                    }else{#1
                        $type     = "msg-fail";
                        $location = "mp_showdata.php";
                        $message  = "portfolio failed to edit";
                        redirect($type,$location, $message);    
                  }     
          }

      ?>

Это моя функция

function edit_portfolio($id, $name, $description, $image, $type_file){
       global $connect;   
       $filePath = "images/portfolios/".basename($image["name"]);
       move_uploaded_file($image["tmp_name"], $filePath);

  if(!empty($image['name'])){
         $sql = "UPDATE ms_portfolios SET name='$name', description='$description', image='$filePath' WHERE id='$id'";
         if($connect->query($sql) === TRUE)
            return true; else
            return false;
      }else{
         $sql = "UPDATE ms_portfolios SET name='$name', description='$description' WHERE id='$id'";
         if($connect->query($sql) === TRUE)
            return true; else
            return false; 
      }
  }

?>

ЭТО МОЙ HTML

<div class="form-group">
<label><?php echo "old image <span style=color:red>$row->image</span>" ?></label>
<input type="file" name="image">
<input type="hidden" name="temp_img" value="<?php echo $row->image ?>">
<input type="hidden" name="id" value="<?php echo $row->id ?>">
</div>  

Моя проблема здесь, где я должен поставить код php только для разрешенных файлов jpg, png, jpeg.Я пробовал в функции и в $ _POST во многих экспериментах

спасибо за помощь:)

1 Ответ

0 голосов
/ 01 июня 2018

Есть 2 вещи, которые вы можете сделать.Первый (на стороне клиента) - это элемент ввода файла на вашей веб-странице, использующий атрибут accept, поэтому браузер ограничит пользователя указанными вами типами файлов (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-accept). На стороне сервера необходимо проверить фактический файл -не расширение. Вы можете использовать pathinfo () ( php проверить расширение файла в форме загрузки )

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