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.
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 de paxmans
1