前端文件
注意点:form表单中method必须是“post”,还要加上enctype=”multipart/form-data”属性。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>图片上传</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="my_file" id="">
<button>上传</button>
</form>
</body>
</html>
后端文件
文件上传用“move_uploaded_file”方法,放置上传文件的文件夹要提前创建好。
<?php
header('content-type:text/html;charset=utf-8');
//配置上传参数
$fileType = ['jpg','png','gif','jpeg'];//上传图片格式
$fileSize = 3145728;//上传图片大小
$filePath = '/uploads/';//放置图片的文件夹
//原始文件名
$fileName = $_FILES['my_file']['name'];
//临时文件名
$tempFile = $_FILES['my_file']['tmp_name'];
//判断是否上传成功
$uploadError = $_FILES['my_file']['error'];
if ($uploadError>0){
switch ($uploadError){
case '1':
case '2':
die('上传文件过大!');
case '3':
die('上传文件不完整!');
case '4':
die('上传文件为空!');
default:
die('上传文件失败!');
}
}
//判断文件扩展名是否支持
$extension = explode('.',$fileName)[1];
if (!in_array($extension,$fileType)){
die('不允许上传'.$extension.'文件类型');
}
//生成不可重复的临时文件名
$fileName = mt_rand(1,99).$fileName;
//文件上传
if (is_uploaded_file($tempFile)){
if (move_uploaded_file($tempFile,__DIR__.$filePath.$fileName)){
echo '上传图片成功';
}else{
die('上传图片失败');
}
}else{
die('非法操作');
}
exit();