用户上传图片并将路径地址存入数据库中

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 . '
'
; } ?>

2,处理提交过来的数据,并将提交过来的数据根据唯一字段number存入数据库中(这个需要根据自己取得数据库设定,根据用户登录时的内容来判定)


$email=$_POST['email'];             //获取提交过来的emial
$password = $_POST['password'];      //获取提交过来的password
$fileInfo = $_FILES['upFile'];        //获取提交过来的图片文件
/*遍历图片的数据*/
if(!empty($_FILES)) {       //如果提交过来的图片数据不为空,则遍历一下图片的数据信息(正式使用时删除)
    foreach ($_FILES['upFile'] as $name => $value)
        echo $name . '=' . $value . '
'
; } //检测文件扩展名 $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 . "
"
. $conn->error; } }else{ echo '文件移动失败'; exit(); } ?>

当用户不是第一次上传图片时,需要将之前存储的用户数据删除,这个等我有空了过来改吧。

你可能感兴趣的:(数据库,php)