2014-07-10 84 views
0

我有一個上傳圖像到oracle數據庫的問題。從php表單上傳圖片到oracle數據庫

這是我的database.php 它從表單中取值並將其發送到我的數據庫。 我的oracle版本是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列我希望它存儲圖片的路徑。 請幫忙

回答

0

圖片應該是BLOB。這裏是關於它的文檔docs.oracle.com以及關於存儲圖片的例子。

順便說一句,你的varchar2不會工作。在PHP中,您的圖片大小最大爲2MB,但列中有3K個字符。