Foros del Web » Programando para Internet » PHP »

Duda obtener nombre de variable dentro de unafuncion

Estas en el tema de Duda obtener nombre de variable dentro de unafuncion en el foro de PHP en Foros del Web. Buenas, requiero ayuda con un problema que me surgio Tengo un formulario: <div class="modificacion"> <div class="flotacion"> <div class="contendor_form_modificacion"> <h3>Crear nuevo Portfolio</h3> <form method="post" action="querys/query_crearportfolio.php" enctype="multipart/form-data" ...
  #1 (permalink)  
Antiguo 01/12/2012, 19:02
 
Fecha de Ingreso: noviembre-2012
Mensajes: 1
Antigüedad: 11 años, 4 meses
Puntos: 0
Duda obtener nombre de variable dentro de unafuncion

Buenas, requiero ayuda con un problema que me surgio


Tengo un formulario:


<div class="modificacion">
<div class="flotacion">
<div class="contendor_form_modificacion">
<h3>Crear nuevo Portfolio</h3>
<form method="post" action="querys/query_crearportfolio.php" enctype="multipart/form-data" class="form_creacion" >


<fieldset>
<label>imagen de muestra:</label>
<input type="file" name="archivo" />


<input type="submit" value="Subir imagen"/>
</fieldset>
</form>
</div>
</div>
</div>

En este formulario se inserta una imagen y se redimensiona al enviar el form.

lo que necesito es que al subir la imagen obtenga el nombre de la imagen redimensionada para poder subirla a una Base de Datos.

El documento que va al action del form es este

<?php


include( '../../config/init.php' );



$cnx = mysqli_connect ( $host, $usr, $pass, $db ) ;





mysqli_query ($cnx , "INSERT INTO imagenes (imagen) VALUES ('$name')");



mysqli_close( $cnx ) ;


?>

y la función que redimensiona la imagen es esta

if( $archivo= isset( $_FILES[ 'archivo' ] ) ){
$file = $_FILES[ 'archivo' ] ;
$origen = $file[ 'tmp_name' ] ;
$destino = '../img/' . round( microtime(1) * 1000 ) . $file[ 'name' ] ;
$name = $file[ 'name' ] ;

if( move_uploaded_file( $origen, $destino ) ){
echo '' ;
} else {
echo 'ERROR No se subio una Imagen!!' ;
}

$nuevaImagen = imagecreatefromjpeg( $destino );


$max_ancho = 196;
$max_alto = 293;

list( $anchoImgOriginal, $altoImgOriginal ) = getimagesize( $destino ) ;


$x_ratio = $max_ancho / $anchoImgOriginal ;
$y_ratio = $max_alto / $altoImgOriginal ;



if( ($anchoImgOriginal <= $max_ancho) && ( $altoImgOriginal <= $max_alto ) ){
$anchoFinal = $anchoImgOriginal;
$altoFinal = $altoImgOriginal ;
} elseif( ( $y_ratio * $anchoImgOriginal ) < $max_ancho ){
$anchoFinal = ceil( $y_ratio * $anchoImgOriginal ) ;
$altoFinal = $max_alto ;
} else{
$altoFinal = ceil( $x_ratio * $altoImgOriginal ) ;
$anchoFinal = $max_ancho ;
}

$img = imagecreatetruecolor( $anchoFinal, $altoFinal ) ;

imagecopyresampled( $img, $nuevaImagen, 0, 0, 0, 0, $anchoFinal, $altoFinal, $anchoImgOriginal, $altoImgOriginal ) ;

imagedestroy( $nuevaImagen ) ;

$calidad = 100 ;

imagejpeg( $img, '../img/portfolio/' . $name, $calidad ) ;


}

Tengo entendido que debería crear una función con el código que redimensiona la imagen y después hacer un return de la variable $name que da el nombre, para luego poder insertarlo en la query.

Intente de mil formas pero no pude

Espero una solución

Gracias!
  #2 (permalink)  
Antiguo 03/12/2012, 11:36
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Duda obtener nombre de variable dentro de unafuncion

Y si esta guardando bien la foto, porque no te funciona guardar la variable $name?

Lo estas haciendo despues que esta imagen esta creada o antes de todo el proceso de redimension ??

Le estas agregando la ruta al momento de guardarla o al momento de mostrarla?

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!

Etiquetas: formulario, imagenes, mysql, nombre, unafuncion, variables
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 17:46.