Subir archivo e insertar registro.

Bueno tienes un código que perfectamente te puede servir para estos propósitos, solo tienes que editarlo un poco para adecuarlo a tus necesidades, y por supuesto esta en php.
Bueno, te dejo el código, con pequeñas modificaciones, de como guardar imágenes en la bd, en este caso soporta toda clase de imágenes o flash.
Se puede subir imágenes y relacionarlas con un nombre, aunque siempre se relacionan con un id. La forma de acceder es por ejemplo, si cuando subimos la imagen, le asignamos el nombre uno y la bd le asigno el id número 3
http://tudominio.com/imagen.php?nombre=uno O tambien http://tudominio.com/imagen.php?id=3 Hay tres cosas configurables, uno lo relacionado con la bd servidor, usuario, contraseña y nombre de la bd y por otro lado si ponen el archivo imagen en un lugar distinto de donde se encuentra guardar, asegurense de cambiar la dirección en el enlace de respuesta de la página guardar.
Es preferible que si no utilizan imágenes grandes por ejemplo menores a 64 kb en vez de longblob (en la columna imagen de la tabla) utilicen blob o si son menores a 16 megas utilicen mediumblob, la tabla es:
CREATE TABLE `subir_imagenes` (
`id` int(11) unsigned NOT NULL auto_increment,
`nombre` varchar(255) default NULL,
`tipo` varchar(255) default NULL,
`imagen` longblob NOT NULL,
KEY `id` (`id`)
) TYPE=MyISAM DEFAULT CHARSET=latin1
El archivo guardar.php es:
<?php
if ( is_uploaded_file ( $_FILES [ 'archivo' ][ 'tmp_name' ]) === TRUE )
{
$imagen = mysql_escape_string ( join (@ file ( $_FILES [ 'archivo' ][ 'tmp_name' ])));
$nombre = mysql_escape_string ( $_POST [ 'nombre' ]);
$tipo = $_FILES [ 'archivo' ][ 'type' ];
# Configurar las dos lineas siguientes
@ mysql_connect ( 'localhost', 'root', '' ) or die( 'No se ha podido conectar el servidor de datos' );
@ mysql_select_db ( 'test' ) or die( 'La base de datos es inexistente' );
if (isset( $nombre ))
{
if (@ mysql_result (@ mysql_query ( "SELECT nombre FROM subir_imagenes WHERE nombre='$nombre'" ), 'nombre' )) die( 'El nombre de la imagen esta actualmente en uso' );
}
@ mysql_query ( "INSERT INTO subir_imagenes(nombre, tipo, imagen) VALUES('$nombre', '$tipo', '$imagen')" );
$id = @ mysql_insert_id ();
echo '
<html>
<body>
<p align="center">Se ha subido la imagen a la base de datos</p>
<br />
<p align="center">ID: ' . $id . '</p>
<p align="center">Nombre: ' . $nombre . '</p>
<br />
<center> <p>Puede verla pulsando <a href="ver_imagen.php?id=' . $id . '">aquí</a> </p> </center>
</body>
</html>
' ;
exit;
}
else
{
echo '
<form enctype="multipart/form-data" method="post" action="' . $_SERVER [ SCRIPT_NAME ] . '">
Nombre: <input type="text" name="nombre" maxlength="256" /> (Opcional)
<br />
Archivo:  <input type="file" name="archivo" />
<br />
<input type="submit" />
</form>
' ;
}
?>
El archivo imagen.php:
<?php
# Configurar las dos lineas siguientes
@ mysql_connect ( 'localhost', 'root', '' ) or die( 'No se puede conectar con el servidor mysql' );
@ mysql_select_db ( 'test' ) or die( 'No se puede seleccionar la base de datos especificada' );
$datos = ( $_GET [ 'id' ]) ? 'id=' . Mysql_escape_string ( $_GET [ 'id' ]) : "nombre='" . Mysql_escape_string ( $_GET [ 'nombre' ]) . "'" ;
$resultado = @ mysql_query ( "SELECT imagen, tipo FROM subir_imagenes WHERE " . $datos );
$imagen = @ mysql_fetch_assoc ( $resultado ) or die( 'Imagen inexistente' );
header ( "Content-type: $imagen[tipo]" );
print $imagen [ 'imagen' ];
?>
No dudes en consultarme cualquier duda, o agregarme a tus expertos favoritos..
No olvides cerrar y valorar la pregunta.

1 respuesta

Respuesta
1
Bueno amigo el código lo tienes allí... sinceramente no tienes que modificara más que
@ mysql_connect ( 'localhost', 'root', '' ) or die( 'No se ha podido conectar el servidor de datos' );
Esta linea que es donde tienes que colocar tus datos de la base de datos mysql, allí te envío todo...
1ro. El código para crear la tabla mysql necesaria para crear el registro...
//////////////////////////////
CREATE TABLE `subir_imagenes` (
`id` int(11) unsigned NOT NULL auto_increment,
`nombre` varchar(255) default NULL,
`tipo` varchar(255) default NULL,
`Imagen` longblob NOT NULL,
KEY `id` (`id`)
) TYPE=MyISAM DEFAULT CHARSET=latin1
/////////////////////////////
Esto lo copias en un archivo de texto y lo guardas como un archivo .sql y desde tu base de datos lo importas, creara automanticamente los datos...
Tiene el archivo guardar.php
//////////////////////////////
<?php if ( is_uploaded_file ( $_FILES [ 'archivo' ][ 'tmp_name' ]) === TRUE )
{
$imagen = mysql_escape_string ( join (@ file ( $_FILES [ 'archivo' ][ 'tmp_name' ])));
$nombre = mysql_escape_string ( $_POST [ 'nombre' ]);
$tipo = $_FILES [ 'archivo' ][ 'type' ];
# Configurar las dos lineas siguientes
@ mysql_connect ( 'localhost', 'root', '' ) or die( 'No se ha podido conectar el servidor de datos' );
@ mysql_select_db ( 'test' ) or die( 'La base de datos es inexistente' );
if (isset( $nombre ))
{
if (@ mysql_result (@ mysql_query ( "SELECT nombre FROM subir_imagenes WHERE nombre='$nombre'" ), 'nombre' )) die( 'El nombre de la imagen esta actualmente en uso' );
}
@ mysql_query ( "INSERT INTO subir_imagenes(nombre, tipo, imagen) VALUES('$nombre', '$tipo', '$imagen')" );
$id = @ mysql_insert_id ();
echo '
<html>
<body>
<p align="center">Se ha subido la imagen a la base de datos</p>
<br />
<p align="center">ID: ' . $id . '</p>
<p align="center">Nombre: ' . $nombre . '</p>
<br />
<center> <p>Puede verla pulsando <a href="ver_imagen.php?id=' . $id . '">aquí</a> </p> </center>
</body>
</html>
' ;
exit;
}
else
{
echo '
<form enctype="multipart/form-data" method="post" action="' . $_SERVER [ SCRIPT_NAME ] . '">
Nombre: <input type="text" name="nombre" maxlength="256" /> (Opcional)
<br />
Archivo:  <input type="file" name="archivo" />
<br />
<input type="submit" />
</form>
' ;
}
?>
/////////////////////////////
Este archivo es el que te hace el envío al server y te inserta el registro en la base de datos...
Solo tienes que copiar y pegar... listo no tienes mucho que cambiar solo la linea de nombre de tu base de datos..
Y tienes el archivo imagen.php:
/////////////////////////////
<?php
if ( is_uploaded_file ( $_FILES [ 'archivo' ][ 'tmp_name' ]) === TRUE )
{
$imagen = mysql_escape_string ( join (@ file ( $_FILES [ 'archivo' ][ 'tmp_name' ])));
$nombre = mysql_escape_string ( $_POST [ 'nombre' ]);
$tipo = $_FILES [ 'archivo' ][ 'type' ];
# Configurar las dos lineas siguientes
@ mysql_connect ( 'localhost', 'root', '' ) or die( 'No se ha podido conectar el servidor de datos' );
@ mysql_select_db ( 'test' ) or die( 'La base de datos es inexistente' );
if (isset( $nombre ))
{
if (@ mysql_result (@ mysql_query ( "SELECT nombre FROM subir_imagenes WHERE nombre='$nombre'" ), 'nombre' )) die( 'El nombre de la imagen esta actualmente en uso' );
}
@ mysql_query ( "INSERT INTO subir_imagenes(nombre, tipo, imagen) VALUES('$nombre', '$tipo', '$imagen')" );
$id = @ mysql_insert_id ();
echo '
<html>
<body>
<p align="center">Se ha subido la imagen a la base de datos</p>
<br />
<p align="center">ID: ' . $id . '</p>
<p align="center">Nombre: ' . $nombre . '</p>
<br />
<center> <p>Puede verla pulsando <a href="ver_imagen.php?id=' . $id . '">aquí</a> </p> </center>
</body>
</html>
' ;
exit;
}
else
{
echo '
<form enctype="multipart/form-data" method="post" action="' . $_SERVER [ SCRIPT_NAME ] . '">
Nombre: <input type="text" name="nombre" maxlength="256" /> (Opcional)
<br />
Archivo:  <input type="file" name="archivo" />
<br />
<input type="submit" />
</form>
' ;
}
?>
////////////////////////////
Ya este es el que te hace la inserción al mysql..
Esta es la formas más fácil que te puedo explicar, todo esto lo puedes trabajar por dreamweaver, pero es la única forma existente que puede hacerlo de forma automatizada...
Un modelo más sencillo y completo que este dudo mucho que puedas conseguir...
No hace tanta falta manejar mucho código, solo copiar y pegar, y cambiar los datos que te explique al comienzo
No dudes en consultarme cualquier duda, o agregarme a tus expertos favoritos..
No olvides cerrar y valorar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas