无法获取图像上传到MySQL longblob

当我尝试上传图像时,其获取空字段。我不知道为什么。 请帮助..无法获取图像上传到MySQL longblob

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>";

}

}

我渐渐空虚像场..

回答:

试试这个

你必须从更改至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;

}

以上是 无法获取图像上传到MySQL longblob 的全部内容, 来源链接: utcz.com/qa/259763.html

回到顶部