上传图片到服务器,并且重新命名图片-更改(小白共勉)

实现用户注册功能,用户上传头像放在imgs的目录下,所涉及文件分别是register.html(注册),conn.php(连接数据库),img.php(上传图片与更改图片名称,改成了是一个函数,返回 图片存储位置+图片名称),register.php(注册功能)

register.html界面如下:

<form action="../php/registeradmin.php" method="post" enctype="multipart/form-data">
	<div class="logindiv">用户姓名:<input type="text" name="user" placeholder="用户名" /></div>
	<div class="logindiv">用户密码:<input type="password" name="password" placeholder="密码" /></div>
	<div class="logindiv">联系方式:<input type="phone" name="phone" placeholder="联系方式" /></div>
	<div class="logindiv">用户邮箱:<input type="email" name="email"  placeholder="用户邮箱" ></div>
	<div class="logindiv">联系地址:<input type="text" name="address" placeholder="联系地址" /></div>
	<div class="logindiv">用户头像:<input type="file" name="file"/></div>
	<input type="submit" id="createadmin" value="创建超级管理员" />
</form>

conn.php不贴,img.php如下:

<?php
	
	function uploadimg($imgnewname){
		// 	允许上传的图片后缀
	$allowedExts = array("gif", "jpeg", "jpg", "png");
	$temp = explode(".", $_FILES["file"]["name"]);

	$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{
			//	上传图片的路径
					$path = "../imgs";
        	//	获取图片真实名称
					$imgname = $_FILES["file"]["name"];
			
			//	图片新名字,用户名.png/.jpg等
					$imgnew = $imgnewname . "." . $extension;
			//	用户需要存储的路径+图片名
					$userimg = $path."/".$imgnew;
					echo $userimg;
//					重命名,此处报错,需要修改
					rename(iconv('UTF-8', 'GBK',$imgname), iconv('UTF-8','GBK',$imgnew));
            // 如果 upload 目录不存在该文件则将文件上传到 imgs 目录下
           			move_uploaded_file($_FILES["file"]["tmp_name"], $userimg);
            		
//          		传递给调用者存储位置内容
            		return $userimg;
  			}
		}else{
    		echo "非法的文件格式";
		}
	}
	

?>

register.php如下:

<?php
//	超级用户注册功能
//	连接数据库
	include "connect.php";

//	获取所上传图片路径
	include "img.php";
	
	$user = $_POST['user'];
	$password1 = $_POST['password'];
	$phone = $_POST['phone'];
	$email = $_POST['email'];
	$address = $_POST['address'];

	//	密码加密
	$password = password_hash($password1, PASSWORD_DEFAULT);
	$credit = "5";
	$manner = "1";
	$userclass = "0";

//	访问img.php下的uploadimg函数,上传图片,返回上传路劲,如下为重命名为$user所代表内容,
	$userimg = uploadimg($user);
		
	$createtime = date("Y/m/d h:i:s");

//	判断是否已经存在将要注册的用户名
	$sqlsearch = "select * from user where user='$user'";
	$seresult = $conn->query($sqlsearch);
	if($seresult->num_rows>0){
		echo "该用户名已经存在,请输入其他用户名";
//		header("Location:../admin/create.html");
	}else{
		echo "没有该用户信息";
		$sqlinsert = "INSERT INTO user (user, password, phone, email, address, credit, manner, userclass, userimg, createtime) VALUES ('".$user."','".$password."','".$phone."','".$email."','".$address."','".$credit."', '".$manner."', '".$userclass."', '".$userimg."', '".$createtime."')";
		if ($conn->query($sqlinsert) === TRUE) {
    		echo "新记录插入成功";
//  		header("Location:../admin/index.html");
		} else {
    		echo "出错,重新注册 " . $sql . "<br>" . $conn->error;
//  		header("Location:../admin/create.html");
		}
	}
?>

不要在意注释掉的代码,那是我在测试其他方式

猜你喜欢

转载自blog.csdn.net/weixin_42574481/article/details/84673871