首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PHP中上传图片?

问如何在PHP中上传图片?
EN

Stack Overflow用户
提问于 2015-11-11 07:08:54
回答 1查看 199关注 0票数 2

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

下面是我的注册代码

代码语言:javascript
复制
<?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!";
}
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-11 07:14:27

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

代码语言:javascript
复制
 $destination = 'YourdesireDestination/';
$fileName = $_FILES['image']['tmp_name'];
 move_uploaded_file($fileName, $destination);

以及保存到数据库的路径。

代码语言:javascript
复制
$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')");

或者,如果要将图像保存到数据库中,则

尝尝这个

代码语言:javascript
复制
   $image = addslashes(file_get_contents($_FILES['image']['tmp_name']));

然后

代码语言:javascript
复制
 $queryreg = mysql_query("INSERT INTO users (id,name,username,password,email,date,level,image,gender)VALUES ('','$fullname','$username','$password','$useremail','$date','$level','$image','$gender')");
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33645732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档