仅对上传图片进行验证(php)

时间:2017-05-04 17:46:59

标签: php html

我有两个问题。

我的第一个问题 - 我正在使用HTML表单上传图像文件。现在我使用验证来允许文件类型。 当我通过谷歌搜索我发现了这一点。

但是当我用“所有文件”更改时选择图片时,用户可以发送非图像的数据。 我的问题在这里,如何验证仅上传2mb以下的图像和大文件

我的第二个问题 - 如何验证人们何时没有填写文件,我试过这个“!isset($ picture))” 但它不起作用。

[代码] - GT;启动

<!DOCTYPE html>
<html>
<head>

<?php

require_once "db.php";
require_once "function.php";



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

  $name     = $_POST['name'];
  $info     = $_POST['info'];
  $picture  = $_FILES['picture'];


  if(!empty(trim($name)) && !empty(trim($info)) ) {

        if(add_data($name, $info, $picture)) {
      echo "success";
    }else{
      echo "fail";
    }

  }else{
    echo 'The data is empty';
  }
}


?>

</head>

<body>


<form action="" method="post" enctype="multipart/form-data">

<table>
  <tr>
    <td>Name</td>
    <td>:</td>
    <td><input type="text" name="name"></td>
  </tr>

  <tr>
    <td>Info</td>
    <td>:</td>
    <td><textarea name="info"></textarea></td>
  </tr>

  <tr>
    <td>picture</td>
    <td>:</td>
    <td><input type="file" accept="image/*"  name="picture"></td>
  </tr>

  <tr>
    <td></td>
    <td></td>
    <td><button type="submit" name="submit">Save</button></td>
  </tr>
  </table>
</form>

</body>
</html>

[/代码] - GT;端

[代码]功能 - &GT;启动

<?php

function add_data($name, $info, $picture){
global $connect;



$name = mysqli_real_escape_string($connect, $name);
$info = mysqli_real_escape_string($connect, $info);


$filePath = "file/".basename($picture["name"]);
move_uploaded_file($picture["tmp_name"], $filePath);


$query = "INSERT INTO try (name, info, picture) VALUES ('$name', '$info', '$filePath')";

if( mysqli_query($connect, $query) ){

      return true;
    }else{
      return false;
}
}
?>

[/代码] - GT;端

0 个答案:

没有答案