上传图片到mysql数据库php [英] upload image to mysql database php
本文介绍了上传图片到mysql数据库php的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要上传图片到php数据库,我的php代码
i want to upload an image to php database, my php code
<?php
session_start();
include('../../includes/connect.php');
$title = $_POST['title'];
$subject = $_POST['subject'];
$file = $_FILES['image']['tmp_name'];
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_size = getimagesize($_FILES['image']['tmp_name']);
$visiable = 1;
$query = "insert into news (title, subject, image, visiable) values ('$title','$subject', '$image', '$visiable')";
$result = mysql_query($query);
$id = mysql_insert_id();
$data = array(
'id' => $id
);
$base = '../../show.php';
$url = $base. '?' . http_build_query($data);
header("Location: $url");
exit();?>
但是它没有上传图片字段仍然为0字节,它工作我昨天,但今天我不知道发生了什么,我希望有人可以帮助我,对不起我的英语。
but it upload nothing the image field is still 0 byte, it works me yesterday but today i dont know what happened, I hop that someone can help me, sorry for my bad english
推荐答案
表结构。
function addImageToDB($imageArray, $title = '', $subject = '', $visible = 0) {
$allowedExts = array("gif","jpeg","jpg","JPG","png","PNG");
$extension = end(explode(".", $imageArray["name"]));
if (
(($imageArray["type"] == "image/gif") // is image type acceptable?
|| ($imageArray["type"] == "image/jpeg")
|| ($imageArray["type"] == "image/jpg")
|| ($imageArray["type"] == "image/png")
)
&& ($imageArray["size"] < 1048576) // set maximum image size
&& in_array($extension, $allowedExts) // is image file extension in $allowedExts?
) {
if ($imageArray["error"] > 0) { // check uploaded image for errors
echo $imageArray['error'];
} else {
$tempImage = $imageArray['tmp_name'];
$fp = fopen($tempImage, 'r');
$image = fread($fp, filesize($tempImage));
$image = addslashes($image);
fclose($fp);
$queryAddImageToDB = "INSERT INTO image (
title,
subject,
image,
visible
) VALUES (
'$title'
'$subject',
'$image',
'$visible'
)";
mysql_query ($queryAddImageToDB) or die ('queryAddImageToDB failed');
$imageID = mysql_insert_id();
return $imageID;
}
} else {
echo 'IMAGE UPLOAD ERROR: The image ie either too large or the file format is unacceptable.';
echo '<pre>';
print_r($imageArray); // display image array for debugging
echo '</pre>';
}
}
您可以像这样调用函数:
You can call the function like this:
$imageArray = $_FILES['image'];
$title = $_POST['title'];
$subject = $_POST['subject'];
$visible = 1;
addImageToDB($imageArray, $title, $subject, $visible);
请注意,此脚本不完全,因为它需要正确的验证,转义等。
Please note that this script IS NOT COMPLETE as it needs proper validation, escaping, etc.
祝你好运我希望这个适合你,我期待着听到反馈。
Good luck I hope this works out for you and I look forward to hearing feedback otherwise.
这篇关于上传图片到mysql数据库php的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文