必要とする:
1. ファイル形式に制限があります
2. アップロードしたファイルを保存します
2. アップロードしたファイルを保存するファイルは、年、月、日ごとに保存する必要があります。
3. 接続テーブルの追加
//プロジェクトのディレクトリ構造
test
|-----upload # ファイルアップロード用ディレクトリ
|-----index.html # フォームファイル
|-----index.php # PHP アップロードコード
まず、idnex.html にアップロード フォームを作成します。
<form action="index.php" method="post" enctype="multipart/form-data">
<label for="file">文件名:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" id="submit" value="提交">
</form>
Index.php にアップロード スクリプトを作成し、このアップロードに接続テーブルを追加しました。
<?php
// 连接数据库 mysqli_connect() 三个参数分别是 mysql服务器主机地址 mysql用户名 mysql用户名密码
$conn = mysqli_connect('', '', '');
mysqli_query($conn , "set names utf8");
mysqli_select_db($conn,'');
// 获取年月日
$y = date("Y");
$m = date("m");
$d = date("d");
// 允许上传的图片后缀
$allowedExts = array("gif", "jpeg", "jpg", "png");
$temp = explode(".", $_FILES["file"]["name"]);
// echo $_FILES["file"]["size"];
$extension = end($temp); // 获取文件后缀名
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 204800) // 小于 200 kb
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "错误:: " . $_FILES["file"]["error"] . "<br>";
}
else
{
// 判断当期目录下的 upload 目录是否存在该文件
// 如果没有 upload 目录,你需要创建它,upload 目录权限为 777
if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo json_encode([
'code'=>0,
'msg'=>"文件重复上传。",
'data'=>[]
]);
}
else
{
$path = "upload/";
$pathY = $path . "/" . $y;
$pathM = $pathY . "/" . $m;
$pathD = $pathM . "/" .$d;
if(!is_dir($pathY)){
mkdir($pathY,0755,true);
};
if(!is_dir($pathM)){
mkdir($pathM,0755,true);
};
if(!is_dir($pathD)){
mkdir($pathD,0755,true);
};
// 如果 upload 目录不存在该文件则将文件上传到 upload 目录下
$dsy = $pathD . "/" . $_FILES["file"]["name"];
move_uploaded_file($_FILES["file"]["tmp_name"],$dsy);
$spl = "insert into image (url) values ('$dsy')";
$retavls = mysqli_query($conn,$spl);
if($retavls){
echo json_encode([
'code'=>1,
'msg'=>"上传成功",
'data'=>['img'=>$dsy]
]);
};
}
}
}
else
{
echo json_encode([
'code'=>3,
'msg'=>"非法的文件格式",
'data'=>[]
]);
}
?>