Загрузка изображения из php формы в базу данных oracle
У меня проблема с загрузкой изображения в базу данных оракула.
это мой database.php, он берет значения из формы и отправляет их в мою базу данных. мой оракул версия 11g.
<meta http-equiv="Content-Language" content="ar-sa">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php
session_start();
include('connection.php');
/* @var $fname type */
$fname=$_POST["fname"];
$sn=$_POST["sn"];
$gender=$_POST["gender"];
$email=$_POST["email"];
$passwd=$_POST["passwd"];
$unvi=$_POST["unvi"];
$section=$_POST["section"];
$dep=$_POST["dep"];
$phone=$_POST["phone"];
$tren=$_POST["tren"];
$hour=$_POST["hour"];
$period=$_POST["period"];
$term=$_POST["term"];
$year=$_POST["year"];
$allowedExts = array("gif", "jpeg", "jpg", "png","JPG");
$temp = explode(".", $_FILES["file"]["name"]);
$extension = end($temp);
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/JPG")
|| ($_FILES["file"]["type"] == "image/pjpeg")
|| ($_FILES["file"]["type"] == "image/x-png")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 2000000)
&& in_array($extension, $allowedExts))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br>";
}
else
{
if (file_exists("student/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"student/" . $_FILES["file"]["name"]);
$pic= "student/" . $_FILES["file"]["name"];
$insert ="INSERT INTO APPLICATION(NAME,SN,GENDER,PASS,UNVI,DEP,PHONE,TERM,HOUR,PERIOD,TREN,YEAR,EMAIL,SECTION,STATE,PIC)VALUES(:fname,:sn, :gender, :passwd, :unvi, :dep, :phone, :term, :hour, :period, :tren, :year,:email,:section,'Waiting',:pic)";
$send = oci_parse($conn, $insert);
oci_bind_by_name($send, ':fname', $fname);
oci_bind_by_name($send, ':sn', $sn);
oci_bind_by_name($send, ':gender', $gender);
oci_bind_by_name($send, ':passwd', $passwd);
oci_bind_by_name($send, ':unvi', $unvi);
oci_bind_by_name($send, ':section', $section);
oci_bind_by_name($send, ':dep', $dep);
oci_bind_by_name($send, ':phone', $phone);
oci_bind_by_name($send, ':term', $term);
oci_bind_by_name($send, ':hour', $hour);
oci_bind_by_name($send, ':period', $period);
oci_bind_by_name($send, ':tren', $tren);
oci_bind_by_name($send, ':year', $year);
oci_bind_by_name($send, ':email', $email);
oci_bind_by_name($send, ':pic', $pic);
oci_execute($send,OCI_DEFAULT);
header("location:requestm.php");
?>
//////////////////////////////
моя таблица базы данных
CREATE TABLE "APPLICATION"
( "NAME" NVARCHAR2(100),
"SN" VARCHAR2(300),
"GENDER" VARCHAR2(100),
"PASS" VARCHAR2(100),
"UNVI" VARCHAR2(100),
"DEP" VARCHAR2(100),
"PHONE" VARCHAR2(100),
"TERM" VARCHAR2(100),
"HOUR" VARCHAR2(100),
"PERIOD" VARCHAR2(100),
"TREN" VARCHAR2(100),
"YEAR" VARCHAR2(100),
"EMAIL" VARCHAR2(100) NOT NULL ENABLE,
"SECTION" VARCHAR2(200),
"STATE" VARCHAR2(100),
"PIC" VARCHAR2(3000),
"NOTE" VARCHAR2(1000),
CONSTRAINT "APPLICATION_PK" PRIMARY KEY ("SN") ENABLE
) ;
столбец PIC я хочу, чтобы он сохранил путь к картинке. пожалуйста помоги
1 ответ
Рис должен быть BLOB. Вот документ об этом docs.oracle.com и пример с хранением изображений.
и, кстати, ваш varchar2 не будет работать в любом случае. В php максимальный размер картинки составляет 2 МБ, но столбец содержит 3К символов.