无法获取图像上传到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