Foros del Web » Programando para Internet » PHP »

Cargar campo Blob y MySql

Estas en el tema de Cargar campo Blob y MySql en el foro de PHP en Foros del Web. Hola listeros, estoy con problemas para cargar un campo de tipo Blob. Resulta que quisiera cargar ahi un archivo tipo .doc o .xls, etc. y ...
  #1 (permalink)  
Antiguo 06/07/2004, 07:55
 
Fecha de Ingreso: junio-2004
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Pregunta Cargar campo Blob y MySql

Hola listeros,
estoy con problemas para cargar un campo de tipo Blob. Resulta que quisiera cargar ahi un archivo tipo .doc o .xls, etc. y no se como hacer con el php para que me lo cargue. Yo tengo una sentencia insert que anda perfecto con una insercion de campos tipo blob pero que no incluya un archivo, pero al querer cargar un archivo en el blob este no llega....


Gracias por todo, Saludos
  #2 (permalink)  
Antiguo 06/07/2004, 08:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Vamos a ver ..

¿Tu quieres guardar integramente en tu BD en ese tal campo (blod o "binario" de tamaño superior) esos archivos "binarios" (= da lo mismo si es un .doc o un .xls o una imgen .jpg o hasta un .exe) ? o sólo guardar el link (nombre del archivo/ruta si corresponde) de su ubicación física en el sistema de archivos de tu servidor (disco duro).?

Un saludo,
  #3 (permalink)  
Antiguo 06/07/2004, 09:00
 
Fecha de Ingreso: junio-2004
Mensajes: 7
Antigüedad: 13 años, 5 meses
Puntos: 0
Información Carga completa de un archivo

Cluster,
lo que yo quiero cargar en la base de datos es el archivo completo si es posible... porque lo que estoy intentando hacer es que un tipo que se inscribe mediante a un formulario web a un posible trabajo para el tenga la posibilidad de cargar tambien su curriculum que de seguro va a ser un archivo .doc u otra extension si es que usa Soft Open. Es tema es que yo cuando levanto los datos asi:



Por un lado dibujo el formulario donde va a buscar al archivo con este codigo....

class FirstPage extends HTML_QuickForm_Page
{
function buildForm()
{
$this->_formBuilt = true;
$archivo[] =& HTML_QuickForm::createElement ('file', 'archivo',NULL);
$this->addGroup( $archivo, 'archivo');
}
}

y despues de hacer una seleccion y clickear al Submit lo trato de recoger con esto....

class ActionProcess extends HTML_QuickForm_Action
{
function perform(&$page, $actionName)
{
$sArchivo = addslashes($_POST["archivo"]["archivo"]);
}
}

Bueno Cluster, espero que te sirva mi info y me puedas dar una ayuda...

Saludos, Cesar
  #4 (permalink)  
Antiguo 07/07/2004, 07:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
No conozco la classe que usas (las que usas . .por qué ahí estás extendiendo una classe)

El caso es que el archivo en sí primero ha de subir a tu servidor por HTTP vía PHP. El destino que le des final al archivo es lo de menos: si lo guardas integro en tu BD en un campo blod o bien lo dejas en algún directorio de tu servidor y en tu BD sólo guardas la referencia del nombre que quedó en su destino definitivo.

El proceso de "Upload HTTP" .. el campo "file" (el HTML que generá tu parte del método: $archivo[] =& HTML_QuickForm::createElement ('file', 'archivo',NULL);) .. en PHP obtienes ese dato en el array superglobal: $_FILES .. no en "POST" .. además de esto el formulario debe estar codificado como "multiparte":

<form enctype="multipart/form-data" action="_URL_" method="post">

Ese "enctype" no sé si tu classe lo hará a o tendrá opción para indicar la "codificación" del formulario. Pero, ha de ser así si o sí.

En el script PHP de proceso, .. en $_FILES tienes unas cuantas propiedades del archivo que ha subido al servidor: "size","name","tmp_name","type" .. que describen el tamaño, nombre del archivo original, nombre del archivo temporal que PHP le dá y el formato MIME del archivo (respectivamente) .. se accede a esas propiedades como describe la documentación de PHP al respecto.

Una vez que tengas "arriba" tu archivo ... le dás el destino definitivo como o a donde gustes. Ya sea que lo muevas a X directorio definitivo (con move_uploaded_file() ..) o lo abras directamente desde el "tmp_name" con fopen() por ejemplo .. para dejarlo en una variable y de ahí hacer tu INSERT/UPDATE a tu BD y dejarlo en un campo tipo "binario" (BLOD o superior ...).

más info:
Upload HTTP
http://www.php.net/manual/en/features.file-upload.php

Tutorial completo sobre Upload+tratamiento de archivos hacia BD en formato binario:
http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:59.