php - 如何在 PHP 中上传图片?

标签 php

我尝试上传图片但不成功!除图像外,所有信息都将插入数据库。我之前尝试使用文本和 blob 类型作为图像,但也没有成功。我只能使用 mysql,因为我所有的编码都使用 mysql 插入数据库而不是 mysqli。

下面是我的注册码

<?php
//register
error_reporting(0);
include 'connect.php';
$submit = $_POST['register'];
//form data
$fullname = strip_tags($_POST['fullname']);
$username = strtolower(strip_tags($_POST['uname']));
$password = strip_tags($_POST['pass']);
$repeatpassword = strip_tags($_POST['r_pass']);
$useremail = strip_tags($_POST['useremail']);
$gender = strip_tags($_POST['gender']);
$date = date("Y-m-d");

if(isset($submit))
{
if ($fullname&&$username&&$password&&$repeatpassword&&$useremail&&$gender)
{
//open database
$connect = mysql_connect("localhost","root","");
mysql_select_db("phpforum"); //select database  

$namecheck = mysql_query("SELECT username FROM users WHERE username='$username'");
$count = mysql_num_rows($namecheck);
//check username in database
if($count >0)
{
$unameErr =  "*Username already taken!";
}else{
//check letter username
if (!preg_match("/^[a-zA-Z _]*$/",$username)) {
$unamelErr = "* Only letters and white space allowed"; 
}else{
//check match password and repeat password
if($password==$repeatpassword)
{
//check char length of username 
    if (strlen ($username)>20||strlen($username)< 3 || strlen ($fullname)>20||strlen($fullname)<3)
    {
     $lengthErr ="* Must Between 3 and 20 characters!";
    }else{
            //check password length
            if (strlen($password)>25||strlen($password)<6)
            {
                $lengthpErr = "* Must Between 6 and 25 characters!";
            } 
            else
            {
            if(!move_uploaded_file(($_FILES['image']['tmp_name'],"images/".$_FILES['image']['name']))){
                echo "Image upload fail!";
            }else{
            //register user
            $password = md5($password);
            $repeatpassword = md5($repeatpassword);

            $queryreg = mysql_query("INSERT INTO users (id,name,username,password,email,date,level,image,gender)VALUES ('','$fullname','$username','$password','$useremail','$date','$level','".$_FILES['file']['tmp_name'],"','$gender')");

            echo "<script type=\"text/javascript\">"; 
            echo "alert('You have been registered!');";
            echo "window.location='forum.php'";
            echo "</script>";
            }
            }
        }

}
else 
    $passErr = "* Your password do not match!"; 
    }
}
}
else
$fillErr = "* Please fill in all fields!";
}
?>

最佳答案

将图像保存到数据库中并不是一个好主意。将图像上传到您想要的目录并将路径保存在数据库中。

 $destination = 'YourdesireDestination/';
$fileName = $_FILES['image']['tmp_name'];
 move_uploaded_file($fileName, $destination);

并将路径保存到数据库。

$queryreg = mysql_query("INSERT INTO users (id,name,username,password,email,date,level,image,gender)VALUES ('','$fullname','$username','$password','$useremail','$date','$level','".$destination.$fileName "','$gender')");

或者如果你想将图像保存到数据库,那么

试试这个

   $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));

然后

 $queryreg = mysql_query("INSERT INTO users (id,name,username,password,email,date,level,image,gender)VALUES ('','$fullname','$username','$password','$useremail','$date','$level','$image','$gender')");

关于php - 如何在 PHP 中上传图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33645732/

相关文章:

php - 如何找出订单号。显示值时的一行?

javascript - 通过简单的html dom删除页面的所有href

PHP PSR-2 语句前/后新行

php - 使用日期之间的MySQL问题

javascript - 提交表单而不刷新页面

php - mysql + php 检索带路径的叶子节点

php - 在 PHP 中,有没有办法获取其键与另一个数组中的值匹配的数组的子集?

php - 用户登录报表需要用户最新的登录记录

php - 文件类型 PHP 验证

php - Mysql 编辑用户下的订单