1,随便编写一写需要用的输入框,然后选择图片上传后提交
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="FileView.php" method="post" enctype="multipart/form-data">
<label>邮箱</label>
<div class="from-group">
<input type="email" class="form-control" id="exampleInputEmail" placeholder="Email" name="email" id="email">
</div>
<div>
<label>密码</label>
<input type="password" placeholder="密码" name="password" id="password">
</div>
<div>
<label>头像</label>
<input type="file" name="upFile" id="upFile">
</div>
<button type="submit">Submit</button>
</form>
</body>
</html>
<?php
if(!empty($_FILES)) {
foreach ($_FILES['upFile'] as $name => $value)
echo $name . '=' . $value . '<br>';
}
?>
2,处理提交过来的数据,并将提交过来的数据根据唯一字段number存入数据库中(这个需要根据自己取得数据库设定,根据用户登录时的内容来判定)
<?php
$email=$_POST['email']; //获取提交过来的emial
$password = $_POST['password']; //获取提交过来的password
$fileInfo = $_FILES['upFile']; //获取提交过来的图片文件
/*遍历图片的数据*/
if(!empty($_FILES)) { //如果提交过来的图片数据不为空,则遍历一下图片的数据信息(正式使用时删除)
foreach ($_FILES['upFile'] as $name => $value)
echo $name . '=' . $value . '<br>';
}
//检测文件扩展名
$allowExt=array('jpeg','jpg','png','gif');
$ext = strtolower(pathinfo($fileInfo['name'],PATHINFO_EXTENSION)); //strtolower把所有字符转换为小写
if (!in_array($ext,$allowExt)){
echo '不被允许的扩展名';
exit();
}else{
echo '允许';
}
/*检测文件类型*/
$allowMime=array('image/jpeg','image/jpg','image/gif','image/png');
if(!in_array($fileInfo['type'],$allowMime)){
echo '上传文件类型错误';
exit();
}else{
echo '文件类型正确';
}
//检测是否为图片
if (!@getimagesize($fileInfo['tmp_name'])){
echo '不是真实图片';
exit();
}else{
echo '是真实图片';
}
/*保存图片*/
$uploadPath = 'images';
if(!file_exists($uploadPath)){
$result = mkdir($uploadPath); //生成图片最后保存路径的根目录
}
$uniName=md5(uniqid(microtime(true),true));/*md5加密,唯一命名,生成的是图片的名字*/
$destination = $uploadPath.'/'.$uniName.'.'.$ext.''; //最后生成的图片的地址
if (@move_uploaded_file($fileInfo['tmp_name'],$destination)){
echo '上传成功';
/*其它操作,写入数据库等*/
$host = "localhost";
$username = "root";
$password = "root";
// 创建连接数据库
$conn = mysqli_connect("localhost","root","root","filecontrol");
// 检测连接
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$sql = "INSERT INTO image (number, address)/*number应该根据Cookie作为登录后的唯一标识*/
VALUES (1, '$destination')";
if ($conn->query($sql) === TRUE) {
echo "图片地址插入成功";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}else{
echo '文件移动失败';
exit();
}
?>
当用户不是第一次上传图片时,需要将之前存储的用户数据删除,这个等我有空了过来改吧。