Foros del Web » Programando para Internet » PHP »

Almacenar archivo php en mysql

Estas en el tema de Almacenar archivo php en mysql en el foro de PHP en Foros del Web. Buenas , quisiera saber como puedo almacenar un archivo php en una tabla de mysql , he visto que algunas cosas como por ejemplo si ...
  #1 (permalink)  
Antiguo 10/01/2007, 20:36
 
Fecha de Ingreso: mayo-2006
Ubicación: Viña del Mar , Chile
Mensajes: 103
Antigüedad: 18 años
Puntos: 0
Almacenar archivo php en mysql

Buenas , quisiera saber como puedo almacenar un archivo php en una tabla de mysql , he visto que algunas cosas como por ejemplo si tengo esta ruta en php:

<input name="pa" type="text" id="path" value=c:/windows/system32

Para almacenarla en mysql seria asi:

<input name="pa" type="text" id="path" value=C:\\windows\\system32\\

O para los espacios en blanco poner esto por ejemplo:

\r\n\ algo asi .

La verdad quiero almacenar un archivo php en una tabla de mysql para luego mediante esta consulta:

SELECT * FROM `tabla` INTO OUTFILE 'C:\\www\\archivo.php'

Pueda almacenar el archivo en un directorio de mi pc.

Quisiera saber si hay algun script que me permita hacer  transformar el php de modo que se pueda almacenar en una tabla mysql ,para despues exportarla a un archivo php en un directorio de mi pc, espero que me entiendan..

Saludos

Última edición por andryus; 10/01/2007 a las 21:49
  #2 (permalink)  
Antiguo 11/01/2007, 00:07
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 19 años, 5 meses
Puntos: 0
De acuerdo Re: Almacenar archivo php en mysql

Particularmente

Te recomendaria que revises la documentación para que puedas subir archivos
y guardes la ruta (el nombre) de tu archivo en un campo de una tabla, claro todo enviado desde un formulario con un campo de archivo

Aqui hay un enlace interesante

http://www.webtaller.com/construccio...chivos-php.php


Salu2

A. Acosta
  #3 (permalink)  
Antiguo 25/05/2009, 12:24
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Almacenar archivo php en mysql

El siguiente codigo lo encontre por ahi para realizar el guardado de cualquier tipo de archivo en una base de datos mysql. Ustedes dispondran de el como puedan y quieran despues no me hechen la culpa de que hice daños. Lo primero que se hara sera la base de datos con su respectiva tabla donde se insertaran los archivos, que el script sql es el siguiente copienlo y ejecutenlo en el administrador web de mysql o con el mysql query de mysql gui tools, ustedes decidiran cual es la mejor forma.

-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 5.0.67-community


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;


--
-- Create schema archivos
--

CREATE DATABASE IF NOT EXISTS archivos;
USE archivos;

--
-- Definition of table `archivos`
--

DROP TABLE IF EXISTS `archivos`;
CREATE TABLE `archivos` (
`id` int(5) NOT NULL auto_increment,
`nombre` varchar(50) NOT NULL,
`titulo` varchar(50) NOT NULL,
`contenido` longblob NOT NULL,
`tipo` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `archivos`
--

/*!40000 ALTER TABLE `archivos` DISABLE KEYS */;
/*!40000 ALTER TABLE `archivos` ENABLE KEYS */;




/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


El siguiente script es el de conectar que se llama como su nombre lo indica conectar.php.

Código PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<?php
$host
='localhost';//servidor
$usuario='root';//usuario del motor mysql
$password=xxxxxxx;// contraseña del motor mysql ustedes colocaran la suya

$conectar=mysql_connect($host,$usuario,$password);
$basededatos=mysql_select_db("archivo",$conectar);

?>

</html>
El siguiente script php que se llama escoger_archivo.php es donde se realiza la accion de escoger del archivo. Como pueden ver realiza un formulario hacia guardar_archivo.php que es donde se guarda el registro en la base de datos.

Código PHP:
<form enctype="multipart/form-data" action="guardar_archivo.php" method="post">
Descripción <input type="text" name="titulo" size="40">
Ubicación <input type="file" name="archivito">
<
input type="submit" value="Enviar archivo">
</
form
El siguiente script php que se llama guardar_archivo.php, es donde se realiza la insercion en la base de datos. Pueden deducir como es el procedimiento.

Código PHP:

<?php

include("conectar.php");
mysql_select_db($basededatos,$conectar);

 
$archivo $_FILES["archivito"]["tmp_name"]; 
 
$tamanio $_FILES["archivito"]["size"];
 
$tipo    $_FILES["archivito"]["type"];
 
$nombre  $_FILES["archivito"]["name"];
 
$titulo  $_POST["titulo"];

echo 
$tamanio;

 if ( 
$archivo != "none" )
 {
    
$fp fopen($archivo"rb");
    
$contenido fread($fp$tamanio);
    
$contenido addslashes($contenido);
    
fclose($fp); 

    
$qry "INSERT INTO archivos VALUES (0,'$nombre','$titulo','$contenido','$tipo')";

    
mysql_query($qry);

    if(
mysql_affected_rows($conectar) > 0)
    {
       print 
"Se ha guardado el archivo en la base de datos.";
       echo 
"<br>";
       echo 
"<a href='listar_archivos.php'>Listar Archivos</a>";
    }
    else
    {
       print 
"NO se ha podido guardar el archivo en la base de datos.";
    }
 }
 else
     {
        print 
"No se ha podido subir el archivo al servidor";
    }
?>
Ya realizado esto si queremos listar que archivos tenemos en nuestra base de datos podemos utilizar el siguiente script php que se llama listar_archivos.php, que es donde los seleccionaremos y descargaremos.

Código PHP:

<?php

include("conectar.php");
mysql_select_db($basededatos,$conectar);
echo 
"<center><a href='escoger_archivo.php'>Seleccionar archivo</a></center>";
echo 
"<br><br>";

$qry "SELECT id, nombre, titulo, tipo FROM archivos";
$res mysql_query($qry);

while(
$fila mysql_fetch_array($res))
{
print 
"$fila[titulo]
<br>
$fila[nombre] ($fila[tipo])
<br>
<a href='descargar_archivo.php?id=$fila[id]'>Descargar</a>
<br>
<br>"
;
}
?>
Como pueden notar el hace referencia al script php llamado descargar_archivo.php que busca el respectivo id del registro en la base de datos. El cual es el siguiente, tener en cuenta dejar la arrobas porque sino no funciona o busquen otra alternativa como todo en la vida cacharreando.

Código PHP:

<?php

$id 
$_GET['id'];
@
mysql_connect("localhost","root","xxxxxx");
@
mysql_select_db("prueba");
$qry "SELECT tipo, contenido FROM archivos WHERE id='$id'";
$res = @mysql_query($qry);
$tipo = @mysql_result($res0);
$contenido = @mysql_result($res0"contenido" );
Header"Content-type: $tipo");
echo 
$contenido;
?>
Espero les sea de utilidad porque a mi me funciono perfectamente. Gracias.
  #4 (permalink)  
Antiguo 25/05/2009, 12:34
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Almacenar archivo con php en mysql correcion final

El siguiente codigo lo encontre por ahi para realizar el guardado de cualquier tipo de archivo en una base de datos mysql. Ustedes dispondran de el como puedan y quieran despues no me hechen la culpa de que hice daños. Lo primero que se hara sera la base de datos con su respectiva tabla donde se insertaran los archivos, que el script sql es el siguiente copienlo y ejecutenlo en el administrador web de mysql o con el mysql query de mysql gui tools, ustedes decidiran cual es la mejor forma.

-- MySQL Administrator dump 1.4
--
-- ------------------------------------------------------
-- Server version 5.0.67-community


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;


--
-- Create schema archivos
--

CREATE DATABASE IF NOT EXISTS archivos;
USE archivos;

--
-- Definition of table `archivos`
--

DROP TABLE IF EXISTS `archivos`;
CREATE TABLE `archivos` (
`id` int(5) NOT NULL auto_increment,
`nombre` varchar(50) NOT NULL,
`titulo` varchar(50) NOT NULL,
`contenido` longblob NOT NULL,
`tipo` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `archivos`
--

/*!40000 ALTER TABLE `archivos` DISABLE KEYS */;
/*!40000 ALTER TABLE `archivos` ENABLE KEYS */;




/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


El siguiente script es el de conectar que se llama como su nombre lo indica conectar.php.

Código PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<?php
$host
='localhost';//servidor
$usuario='root';//usuario del motor mysql
$password=xxxxxxx;// contraseña del motor mysql ustedes colocaran la suya

$conectar=mysql_connect($host,$usuario,$password);
$basededatos=mysql_select_db("archivos",$conectar);

?>

</html>
El siguiente script php que se llama escoger_archivo.php es donde se realiza la accion de escoger del archivo. Como pueden ver realiza un formulario hacia guardar_archivo.php que es donde se guarda el registro en la base de datos.

Código PHP:
<form enctype="multipart/form-data" action="guardar_archivo.php" method="post">
Descripción <input type="text" name="titulo" size="40">
Ubicación <input type="file" name="archivito">
<
input type="submit" value="Enviar archivo">
</
form
El siguiente script php que se llama guardar_archivo.php, es donde se realiza la insercion en la base de datos. Pueden deducir como es el procedimiento.

Código PHP:

<?php

include("conectar.php");
mysql_select_db($basededatos,$conectar);

 
$archivo $_FILES["archivito"]["tmp_name"]; 
 
$tamanio $_FILES["archivito"]["size"];
 
$tipo    $_FILES["archivito"]["type"];
 
$nombre  $_FILES["archivito"]["name"];
 
$titulo  $_POST["titulo"];

echo 
$tamanio;

 if ( 
$archivo != "none" )
 {
    
$fp fopen($archivo"rb");
    
$contenido fread($fp$tamanio);
    
$contenido addslashes($contenido);
    
fclose($fp); 

    
$qry "INSERT INTO archivos VALUES (0,'$nombre','$titulo','$contenido','$tipo')";

    
mysql_query($qry);

    if(
mysql_affected_rows($conectar) > 0)
    {
       print 
"Se ha guardado el archivo en la base de datos.";
       echo 
"<br>";
       echo 
"<a href='listar_archivos.php'>Listar Archivos</a>";
    }
    else
    {
       print 
"NO se ha podido guardar el archivo en la base de datos.";
    }
 }
 else
     {
        print 
"No se ha podido subir el archivo al servidor";
    }
?>
Ya realizado esto si queremos listar que archivos tenemos en nuestra base de datos podemos utilizar el siguiente script php que se llama listar_archivos.php, que es donde los seleccionaremos y descargaremos.

Código PHP:

<?php

include("conectar.php");
mysql_select_db($basededatos,$conectar);
echo 
"<center><a href='escoger_archivo.php'>Seleccionar archivo</a></center>";
echo 
"<br><br>";

$qry "SELECT id, nombre, titulo, tipo FROM archivos";
$res mysql_query($qry);

while(
$fila mysql_fetch_array($res))
{
print 
"$fila[titulo]
<br>
$fila[nombre] ($fila[tipo])
<br>
<a href='descargar_archivo.php?id=$fila[id]'>Descargar</a>
<br>
<br>"
;
}
?>
Como pueden notar el hace referencia al script php llamado descargar_archivo.php que busca el respectivo id del registro en la base de datos. El cual es el siguiente, tener en cuenta dejar la arrobas porque sino no funciona o busquen otra alternativa como todo en la vida cacharreando.

Código PHP:

<?php

$id 
$_GET['id'];
@
mysql_connect("localhost","root","xxxxxx");
@
mysql_select_db("archivos");
$qry "SELECT tipo, contenido FROM archivos WHERE id='$id'";
$res = @mysql_query($qry);
$tipo = @mysql_result($res0);
$contenido = @mysql_result($res0"contenido" );
Header"Content-type: $tipo");
echo 
$contenido;
?>
Espero les sea de utilidad porque a mi me funciono perfectamente. Gracias.
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:15.