|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - jualeop
Páginas: [1]
1
« en: Martes 11 de Enero de 2011, 16:25 »
Les cuento que ya pude hacer la tarea, les adjunto los archivos completos para hacer la conexión y consultar las imágenes: ***************************************lobosolitario.php********************************** <html> <head> <title>Formulario de subida de fotos</title> </head> <body> Formulario de subida de fotos a Oracle<br><br> Limite de tamaño de subida de fotos 1.024 KB<br> <form action="lobosolitario1.php" method="post" enctype="multipart/form-data"> Descripción de la imagen: <input type="text" name="lob_description"><br> Abrir Archivo: <input type="file" name="lob_upload"><br><br> <input type="submit" value="Subir Imagen"> - <input type="reset"> </form> <br><a href=show.php>ver imagenes</a> </body> </html>
*************************************lobosolitario1.php************************************* <?php $lim_tam = "1024000"; $lob_description = $_POST['lob_description']; $lob_upload_name = $_FILES['lob_upload']['name']; $lob_upload_size = $_FILES['lob_upload']['size']; $lob_upload_type = $_FILES['lob_upload']['type']; $lob_upload = $_FILES['lob_upload']['tmp_name']; if($_FILES['lob_upload']['error']==1){ print " <script> alert('El Archivo supera el límite de tamaño, por favor seleccione un archivo diferente.') document.location.href='lobosolitario.php' </script> "; }else if($lob_upload_size>$lim_tam){ print " <script> alert('El Archivo supera el límite de tamaño, por favor seleccione un archivo diferente.') document.location.href='lobosolitario.php' </script> "; } else if($_FILES['lob_upload']['error']!=0){ print " <script> alert('Error de Archivo, el archivo no se puede subir.') document.location.href='lobosolitario.php' </script> "; } else { $user = "SCRIPT"; $pass = "SCRIPT"; $tsnames = "ORAPR1"; //Aqui se establece la conexion con una base de datos oracle. $conn = OCILogon($user,$pass,$tsnames); /*Inicializa un nuevo descriptor vacío LOB/FILE (LOB por defecto) Reserva espai per mantenir descriptors o localitzadors LOB. Els valors valids pel tipus type son OCI_D_FILE, OCI_D_LOB, OCI_D_ROWID. Per descriptors LOB, els metodes LOAD, SAVE, i SAVEFILE estan associats amb el descriptor, per BFILE només existeix el mètode LOAD*/ $lob = OCINewDescriptor($conn, OCI_D_LOB); //Preparem la consulta SQL(INSERT) capaç d'introduir els valors a la base de dades. $stmt = OCIParse($conn,"INSERT INTO BINARY_DATA (id,description,bin_data,filename,filesize,filetype) VALUES (LOBO.NEXTVAL,'$lob_description',EMPTY_BLOB(),'$lob_upload_name','$lob_upload_size','$lob_upload_type') returning BIN_DATA into :the_blob"); /* Enlaza una variable PHP a un Placeholder de Oracle Enllaça la variable PHP variable a un placeholder d'ORACLE ph_name. Si aquesta serà usada per entrada o o sortida es determinarà en temps d'execució, i serà reservat l'espai necessari d'emmagatzemament. El parametre lenght estableix el tamany màxim de l'enllaç. Si s'estableix length a -1 OCIBindByName utilitzarà el tamany de la variable per establir el tamany màxim. EN LA ULTIMA PRUEBA QUE SE REALIZÓ EL 07/01/2011 ESTE VALOR $LOB VENÍA PASADO POR REFERENCIA &$LOB NO OBSTANTE ESTO ES UN ERROR EN ESTE CASO */ OCIBindByName($stmt, ':the_blob',$lob, -1, OCI_B_BLOB); //Ejecucion de la sentencia. OCIExecute($stmt, OCI_DEFAULT); if($lob->savefile($lob_upload)) { OCICommit($conn); echo "Blob successfully uploadedn<br>"; echo "<a href=show.php>SHOW FILES</a>"; } else { echo "Couldn't upload Blobn"; } OCIFreeStatement($stmt); OCILogoff($conn); } ?>
****************************************show.php******************************************* <? $user = "SCRIPT"; $pass = "SCRIPT"; $tsnames = "ORAPR1"; //Fem el Login amb la base de dades $Conn = OciLogon($user,$pass,$tsnames); $sql_1 = "select id, filename, description, filetype from binary_data order by id desc"; $sql_1 = OCIParse($Conn, $sql_1); OCIExecute($sql_1, OCI_DEFAULT); While (OCIFetchInto($sql_1, $row, OCI_ASSOC)) { echo "<a href=file.php?id=$row[ID] target=_blank>$row[FILENAME]</a> $row[FILETYPE] $row[DESCRIPTION]<br>"; } echo "<br><a href=lobosolitario.php>Insertar una nueva imagen"; OCIFreeStatement($sql_1); OCILogoff($Conn); ?>
**************************************file.php************************************************ <? /* file.php Archivo que nos muestra el archivo pedido a la base de datos */ $id=$_GET['id']; $user = "SCRIPT"; $pass = "SCRIPT"; $tsnames = "ORAPR1"; $Conn = OciLogon($user, $pass, $tsnames); $query = "select BIN_DATA, FILENAME, FILESIZE, FILETYPE from binary_data where ID=$id"; $stmt = OCIParse($Conn, $query); OCIDefineByName($stmt,"BIN_DATA",$NewData["BIN_DATA"]); OCIDefineByName($stmt,"FILETYPE",$NewData["FILETYPE"]); OCIExecute($stmt); OCIFetch($stmt); { $NewData["BIN_DATA"] = $NewData["BIN_DATA"]->load(); } Header ("Content-type: $NewData[FILETYPE]"); echo $NewData["BIN_DATA"]; OCIFreeStatement($stmt); ?>
********************************************************************************************* Obviamente se puede mejorar más pero esto es una base para saber cómo se suben y después se utilizan de acuerdo a como los necesites.
2
« en: Viernes 7 de Enero de 2011, 16:52 »
Buenos Dias, acudo a ustedes para tratar de resolver un problema. resulta que estoy tratando de subir imagenes a una BD en ORACLE por PHP pero no he podido, cuando ejecuto el SQL me muestra un error "ociparse(): OCIParse: ORA-00972: identificador demasiado largo", les adjunto el código, es de anotar que en la BD tengo el campo ARCHIVO_BINARIO declarado como BLOB: // archivo temporal (ruta y nombre). $binario_nombre_temporal=$_FILES['archivo']['tmp_name'] ; // leer del archvio temporal .. el binario subido. // Obtener del array FILES (superglobal) los datos del binario .. nombre, tabamo y tipo. $binario_nombre=$_FILES['archivo']['name']; $binario_peso=$_FILES['archivo']['size']; $binario_tipo=$_FILES['archivo']['type']; //insertamos los datos en la BD. $db_conn = ocilogon( "SCRIPT", "SCRIPT", "ORAPR1"); $cmdstr = "insert into SCRIPT.ARCHIVOS (ARCHIVO_BINARIO, ARCHIVO_NOMBRE, ARCHIVO_PESO, ARCHIVO_TIPO) VALUES ('$binario_contenido', '$binario_nombre', '$binario_peso', '$binario_tipo')"; $parsed = ociparse($db_conn, $cmdstr); ociexecute($parsed); header("location: listar_imagenes.php"); // si ha ido todo bien
Agradezco su ayuda al respecto.
Páginas: [1]
|
|
|