Subir imagen al servidor y almacenar la ruta en la base de datos

Iniciado por antonioska, 12 Abril 2013, 10:24 AM

0 Miembros y 1 Visitante están viendo este tema.

antonioska

Hola, primero que nada gracias por leer mi post.

Soy nuevo en esto, y supongo que es algo bastante facil por eso estoy pidiendo de su ayuda.

lo que busco es poder subir una imagen a mi servidor y enviar la ruta de la imagen y algunos otros datos a mi db, el problema es que no se como hacerlo :( alguien me podria ayudar?

raul99

Espero que te sirva, por lo menos ami me funcionaba el otro año

// Ruta de la carpeta para subir los archivos
$var = "E:\wamp\www\ruta\upload";

/// Comprueba Errores al subir
if ($_FILES["file"]["error"] > 0) {
// Si hay un error, imprime el numero de error
// Tipo de errores según el numero: http://php.net/manual/es/features.file-upload.errors.php
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
} else {
// Comprueba si el archivo ya existe
if (file_exists($var.'/'. $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " ya existe. ";
} else {
// Sube el archivo a la ruta
move_uploaded_file($_FILES["file"]["tmp_name"], $var.'/' . $_FILES["file"]["name"]);
sql="INSERT INTO TABLA_NOMBRE (RUTA) VALUES ($var.'/' . $_FILES["file"]["name"])";
}
}

Phantasy

Ese codigo funciona. Ahora si necesitas ayuda con el tema de ridemensionar las fotos a la hora de subirlas etc, te puedo ofrecer codigo.


Un saludo.

antonioska

#3
Cita de: raul99 en 12 Abril 2013, 10:56 AM
Espero que te sirva, por lo menos ami me funcionaba el otro año

// Ruta de la carpeta para subir los archivos
$var = "E:\wamp\www\ruta\upload";

/// Comprueba Errores al subir
if ($_FILES["file"]["error"] > 0) {
// Si hay un error, imprime el numero de error
// Tipo de errores según el numero: http://php.net/manual/es/features.file-upload.errors.php
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
} else {
// Comprueba si el archivo ya existe
if (file_exists($var.'/'. $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " ya existe. ";
} else {
// Sube el archivo a la ruta
move_uploaded_file($_FILES["file"]["tmp_name"], $var.'/' . $_FILES["file"]["name"]);
sql="INSERT INTO TABLA_NOMBRE (RUTA) VALUES ($var.'/' . $_FILES["file"]["name"])";
}
}


Hola muchas gracias por contestar, durante la noche me puse a investigar como loco y encontré un código similar al tullo :)

antonioska

Cita de: Phantasy en 12 Abril 2013, 11:04 AM
Ese codigo funciona. Ahora si necesitas ayuda con el tema de ridemensionar las fotos a la hora de subirlas etc, te puedo ofrecer codigo.


Un saludo.
seria genial si lo pudieras compartir
gracias

Phantasy

if (is_uploaded_file ($_FILES['imagen']['tmp_name'])){
   $nombreDirectorio = "img/";
   $idUnico = time();
   $nombreFichero = $idUnico . "-" . $_FILES['imagen']['name'];
   $nombreFichero=$nombreDirectorio.$nombreFichero;

   
   $ruta_imagen=$_FILES['imagen']['tmp_name'];
$miniatura_ancho_maximo = 665;
$miniatura_alto_maximo = 500;
$info_imagen = getimagesize($ruta_imagen);
$imagen_ancho = $info_imagen[0];
$imagen_alto = $info_imagen[1];
$imagen_tipo = $info_imagen['mime'];

$proporcion_imagen = $imagen_ancho / $imagen_alto;
//$miniatura_ancho_maximo = $miniatura_alto_maximo * $proporcion_imagen;
$proporcion_miniatura = $miniatura_ancho_maximo / $miniatura_alto_maximo;
if ( $proporcion_imagen > $proporcion_miniatura ){
$miniatura_ancho = $miniatura_ancho_maximo;
$miniatura_alto = $miniatura_ancho_maximo / $proporcion_imagen;
}
else if ( $proporcion_imagen < $proporcion_miniatura ){
$miniatura_ancho = $miniatura_alto_maximo * $proporcion_imagen;
$miniatura_alto = $miniatura_alto_maximo;
}
else {
$miniatura_ancho = $miniatura_ancho_maximo;
$miniatura_alto = $miniatura_alto_maximo;
}

switch ( $imagen_tipo ){
case "image/jpg":
case "image/jpeg":
$imagen = imagecreatefromjpeg( $ruta_imagen );
break;
case "image/png":
$imagen = imagecreatefrompng( $ruta_imagen );
break;
case "image/gif":
$imagen = imagecreatefromgif( $ruta_imagen );
break;
}

$lienzo = imagecreatetruecolor( 500, 500/*$miniatura_ancho, $miniatura_alto*/ );
imagecopyresampled($lienzo, $imagen, 0, 0, 0, 0, 500, 500, $imagen_ancho, $imagen_alto);
imagejpeg($lienzo, $nombreFichero, 80);
   
   //FIN DE REDUCCION DE IMAGEN -->
   
}


Doy por hecho que algunas cosas las entiendes, sino preguntamelas.

Un saludo.