我有两个问题。
我的第一个问题 - 我正在使用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;端