无法在mysql longblob上上传图片

时间:2017-12-03 06:27:12

标签: php html forms

当我尝试上传图片时,它会变为空字段。我不知道为什么。 请帮忙..

html表格:

<form action="edit_profile.php" method="POST" enctype="multipart/formdata">
    <input type="file" name="profile_image" required="">
    <button name="upload_image" class="btn btn-danger">Go</button>
</form>

PHP:

if(isset($_POST['upload_image'])){
        $image = $_FILES['profile_image']['tmp_name'];
        $profile_image = addslashes(file_get_contents($image));

        $sql = "update users set image='".$profile_image."' where username='$username'";
        $result = mysqli_query($con, $sql);

        if($result){
            echo "<script>window.open('profile.php','_SELF')</script>";
        }
        else{
            echo "<script>alert('Error!')</script>";
            echo "<script>window.open('profile.php','_SELF')</script>";
        }
    }

我得到空的图像字段..

1 个答案:

答案 0 :(得分:-1)

试试这个

您必须从enctype="multipart/formdata"更改为enctype="multipart/form-data"

我在按钮上添加了type="submit"。我知道它默认为submit

HTML代码

<form action="process.php" method="post" enctype="multipart/form-data">
    <input type="file" name="profile_image"  required="">
    <button type="submit" name="upload_image" class="btn btn-danger">Go</button>
</form>

<强> Process.php

在此处添加您的数据库文件

if (isset($_POST["upload_image"])) {
 if ($_FILES["profile_image"]["error"] > 0) {
            $error = $_FILES["file"]["error"];
        }
            else if (($_FILES["profile_image"]["type"] == "image/gif") ||
            ($_FILES["profile_image"]["type"] == "image/jpeg") ||
            ($_FILES["profile_image"]["type"] == "image/png") ||
            ($_FILES["profile_image"]["type"] == "image/pjpeg")) {

            $temp = explode(".", $_FILES["profile_image"]["name"]);
            $newfilename = round(microtime(true)) . '.' . end($temp);
            //echo $newfilename;
            $url = 'upload/'.$newfilename;// it will store the image in the upload folder
            $filename = compress_image($_FILES["profile_image"]["tmp_name"], $url, 80);//this will call the compress_image fruntion for optimize the image
        }else {
            $error = "Uploaded image should be jpg or gif or png";
        }

 $new_image_name=$newfilename;//here is the new random file name

 $sql = "update users set image='".$new_image_name."' where  username='$username'";
        $result = mysqli_query($conn, $sql);
        if($result){
            echo "<script>window.open('profile.php','_SELF')</script>";
        }
        else{
            echo "<script>alert('Error!')</script>";
            echo "<script>window.open('profile.php','_SELF')</script>";
        }
}

下面的功能将优化图像。

  $name = ''; $type = ''; $size = ''; $error = '';
   function compress_image($source_url, $destination_url, $quality) {

      $info = getimagesize($source_url);

          if ($info['mime'] == 'image/jpeg')
          $image = imagecreatefromjpeg($source_url);

          elseif ($info['mime'] == 'image/gif')
          $image = imagecreatefromgif($source_url);

          elseif ($info['mime'] == 'image/png')
          $image = imagecreatefrompng($source_url);

          imagejpeg($image, $destination_url, $quality);
          return $destination_url;
        }