필요하다:
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'=>[]
]);
}
?>