Ver Mensaje Individual
  #6 (permalink)  
Antiguo 01/07/2008, 18:35
Avatar de JaimeVasquez
JaimeVasquez
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: BLOB en Oracle de Window a Linux via PHP

Ok gracias.. en todo caso ya pille mi problema la solución es la siguiente (opte por /tmp pero se puede configurar otro directorio) la adjunto por si a alguine le sucede:

Esto es para desplegar un formulario para ingresar la ruta del archivo a ser subido..
<head>
<title>subida de archivos</title>
</head>
<body>
<form method="POST" action="prueba6.php" enctype="multipart/form-data">
<input type="file" name="TxtArchivo"><br>
<input type="submit" value="Subir">
</form>
</body>
</html>

Luego gatillo mi php (prueba6.php) que movera el archivo temporal a un directorio de descarga
<?
$archivo_nombre = $_FILES["TxtArchivo"]["name"];
$archivo_peso = $_FILES["TxtArchivo"]["size"];
$archivo_temporal = $_FILES["TxtArchivo"]["tmp_name"];

$ruta_a_subir = addslashes('/tmp/'.$archivo_nombre);

if(move_uploaded_file($archivo_temporal, $ruta_a_subir))
{
echo "Archivo subido $archivo_temporal = $archivo_nombre<br>";
}
else
{
echo "Error al subir el archivo $archivo_temporal";
}

?>

finalmente realizo el resto de subir a la base..esto es PHP por siaca, y se debe adaptar a lo que se requiera ..

$lob_description = "Archivo Plano";
$lob_upload = file_get_contents(addslashes("/tmp/".extrae_nomarch($Archivo)));
$lob_upload_name = addslashes('/tmp/'.extrae_nomarch($Archivo));
$lob_upload_type = mime_content_type(extrae_nomarch($Archivo));
$lob_upload_size = filesize($lob_upload_name);

$Sql = "INSERT INTO prueba_imagen (id,description,bin_data,filename,filesize,filetyp e) VALUES ('$IdMat','$lob_description',EMPTY_BLOB(),'$lob_up load_name','$lob_upload_size','$lob_upload_type') returning BIN_DATA into :the_blob";

/**********************************************/
/* Se insertan las variables a la tabla */
/**********************************************/
$lob = OCINewDescriptor($Conn, OCI_D_LOB);
$stmt = OCIParse($Conn,$Sql);
OCIBindByName($stmt, ':the_blob', &$lob, -1, OCI_B_BLOB);

OCIExecute($stmt,OCI_DEFAULT);
if($lob->savefile($lob_upload_name))
{
OCICommit($Conn);
$retorno= array('status'=>1,'reg'=>'Registro Ingresado Exitosamente');
unlink($lob_upload_name);
return $retorno;
}
else
{
$e = OCIError($stmt);
$retorno= array('status'=>0,'reg'=>$e['message']);
unlink($lob_upload_name);
return;
}

Espero que le sirva a alguien...a y extrae_nomarch() solo rescata el nombre del archivo a subir, un misero for..etc..