Foros del Web » Programando para Internet » PHP »

Cadena aleatoria me da error al insertar la imagen.

Estas en el tema de Cadena aleatoria me da error al insertar la imagen. en el foro de PHP en Foros del Web. Hola, estoy intentando adaptar a mi codigo una funcion de redimensionar imagenes aqui en los aportes del foro pero me da error, ¿Alguien sabira donde ...
  #1 (permalink)  
Antiguo 31/05/2009, 00:32
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Cadena aleatoria me da error al insertar la imagen.

Hola, estoy intentando adaptar a mi codigo una funcion de redimensionar imagenes aqui en los aportes del foro pero me da error, ¿Alguien sabira donde estoy fallando? El codigo es el siguiente:

Código PHP:
<?php
session_start
();

$carpeta 'imgjacobo/';

// incluimos el archivo de conexion
include ('../../usuarios/reg/config.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_FILES['fichero']['tmp_name'] )&& $_POST['aceptacondiciones']){

//upload de imagen
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
            
move_uploaded_file($_FILES['fichero']['tmp_name'], $carpeta.$_FILES['fichero']['name']); // se coloca en su lugar final
        
}
        
//Redimensionar imagen en caso de que lo necesite

function redimensionar($ruta,$ancho,$alto){ 

//Obtenemos las dimensiones, la ruta es absoluta. 
$dim getimagesize($ruta); 
/*getimagesize() pasa un array a la variable 
$dim tal que $dim[0] contiene el ancho de la imagen  
y dim[1] contiene el alto.*/ 
if($dim[1]){ 
//Para asegurarnos de que dim[1] es diferente de cero 
$cociente $dim[0] / $dim[1]; 

if(
$alto){ 
//Para asegurarnos de que alto es diferente de cero 
$coc_max $ancho $alto


    if((
$dim[0]<=$ancho)&&($dim[1]<=$alto)){ 
    
/*En este caso no pasa nada y  
    la imagen se imprime con su tamaño original*/ 
    
$ancho $dim[0]; 
    
$alto $dim[1]; 
    }else{ 
        if(
$cociente>=$coc_max){ 
        
/*En este caso el factor más restrictivo 
        va a ser el ancho de la foto*/ 
        
$alto $ancho $cociente
        }else{ 
        
/*En este caso el factor restrictivo  
        va a ser la altura de la foto*/ 
        
$ancho $alto $cociente
        } 
    }
     


$mi_ruta_relativa $_FILES['fichero']['tmp_name']; /*ruta relativa de la  
                                          imagen a mostrar*/ 

redimensionar($mi_ruta_relativa,100,100);

// hacemos el INSERT en la BD
$sqlInsertNot mysql_query("INSERT INTO galeriajacobo
(imagen_jacobo) VALUES ('"
.$_FILES['fichero']['name']."')",$db_link) or die(mysql_error());
// enviamos un mensaje de exito
$notok="Imagen publicada correctamente, puedes verla en la página de inicio.";
}else{
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
$error="* ¡Atención! Recuerda haber insertado la imagen y recuerda haber aceptado<br> las condiciones.";
}
}
?>

Última edición por rompeguesos; 31/05/2009 a las 02:59
  #2 (permalink)  
Antiguo 31/05/2009, 00:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: problemas al redimensionar imagenes (ayuda)

te sugiero que mires este post es el mismo problema que el tuyo y se soluciono

http://www.forosdelweb.com/f18/reesc...-luego-702844/
  #3 (permalink)  
Antiguo 31/05/2009, 01:11
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: problemas al redimensionar imagenes (ayuda)

Creo que es muy complicado eso para mi :P jejejej no hay algun modo de yo poder corregir ese que tengo ahora mismo? es que es mas chiquetito y me pierdo menos ;)
  #4 (permalink)  
Antiguo 31/05/2009, 01:22
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: problemas al redimensionar imagenes (ayuda)

Muchacho lo unico que tienes que hacer para llamar aquello es asi

colocas en un archivo el class
lo llamas con
include("nombreArchivo.php");

luego en el archivo que quieras redimencionar escribes

Código PHP:
    $imgTrans = new imageTransform();
    
$imgTrans->sourceFile "NombreDelaImagen.jpg";
    
$imgTrans->targetFile "Donde/Lo/Quieres/Ubicar.jpg";
    
$imgTrans->resizeToHeight 200;
    
//Puede ser tambien width
    //$imgTrans->resizeToWidth = 200;
    
$imgTrans->resize(); 
  #5 (permalink)  
Antiguo 31/05/2009, 01:31
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Respuesta: problemas al redimensionar imagenes (ayuda)

Muchas gracias abimaelrc pero antes de escribirme ahora mismo ya lo habia conseguido con otra que he conseguido buscando por el foro y se trata de esto:

redimensionar.php

Código PHP:
<?php
function crearThumb$fuente$destino$dim=120$propor=false$forzar=false ) { 
        
$tipo_imagen explode"."$fuente ); 
        
$sizeof count$tipo_imagen ) - 1
        
$ext strtolower$tipo_imagen[$sizeof] ); 
        if ( 
$ext == "gif" ) { 
            
$fuenteimg = @imagecreatefromgif$fuente ); 
        } 
        elseif ( 
$ext == "png" ) { 
            
$fuenteimg = @imagecreatefrompng$fuente ); 
        } 
        else { 
            
$fuenteimg = @imagecreatefromjpeg$fuente ); 
        } 
        list( 
$ancho$alto$tipo$atr ) = getimagesize$fuente ); 
        if ( 
$ancho $dim || $alto $dim || $forzar ) { 
            if ( 
$propor ) { 
                if ( 
$ancho $alto ) { 
                    
$nAncho $dim
                    
$nAlto $dim/( $ancho/$alto ); 
                } else { 
                    
$nAlto $dim
                    
$nAncho $dim/( $alto/$ancho ); 
                } 
            } else { 
                
$nAncho $dim
                
$nAlto $dim
            } 
            
$thumb imagecreatetruecolor$nAncho$nAlto ); 
            
imagecopyresampled$thumb$fuenteimg0000$nAncho$nAlto$ancho$alto ); 
            
$calidad 100
            if ( 
$ext == "gif" ) {  
                
imagegif$thumb$destino$calidad);  
            }  
            elseif ( 
$ext == "png" ) { 
                
imagepng$thumb$destino$calidad); 
            } 
            else { 
                
imagejpeg$thumb$destino$calidad); 
            } 
        } 
    }  
?>
luego en el codigo de subir la foto lo hice asi:

Código PHP:
//upload de imagen
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
            
 
        
//Redimensionar imagen en caso de que lo necesite
include( "../../untitled0.php" );

$ruta $_FILES['fichero']['tmp_name'];
$rutatemp $_FILES['fichero']['tmp_name'];
$rutastr_replace(" """$ruta);
$tipo$_FILES['fichero']['type'];
$tamano $_FILES['fichero']['size'];
if(!((
strpos($tipo"gif") || strpos($tipo"jpeg")) && ($tamano 100000) )) {
echo 
'La extensión o el tamaño de los archivos no es correcta'
return 
false;
}
else 
{
$destino $carpeta.$_FILES['fichero']['name'];
move_uploaded_file($rutatemp,$destino);
crearThumb$destino$destino500true );
}
       } 
Y me funciona bien, lo unico que no se si este codigo es bueno o se le puede mejorar algo?
  #6 (permalink)  
Antiguo 31/05/2009, 02:58
Avatar de rompeguesos  
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 1 mes
Puntos: 8
Pregunta Respuesta: problemas al redimensionar imagenes (ayuda)

Continuo con la mejora del codigo, haber estoy implementandole ahora una cadena aleatoria para que se cree un nombre aleatorio y asi sea mas complicao que salgan dos nombres iguales, el codigo que llevo hasta ahora es el siguiente:

Código PHP:
<?php
session_start
();

$carpeta 'imgjacobo/';

if(
$_POST){ 
// Creamos la cadena aletoria 
$str "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
$cad ""
for(
$i=0;$i<12;$i++) { 
$cad .= substr($str,rand(0,62),1); 
}}
// incluimos el archivo de conexion
include ('../../usuarios/reg/config.php');
// recibimos el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// comprobamos que el formulario no envie campos vacios
if(!empty($_FILES['fichero']['tmp_name'] )&& $_POST['aceptacondiciones']){

//upload de imagen
if(is_uploaded_file($_FILES['fichero']['tmp_name'])) {
                
//Redimensionar imagen en caso de que lo necesite
include( "redimensionar.php" );

$ruta $_FILES['fichero']['tmp_name'];
$rutatemp $_FILES['fichero']['tmp_name'];
$rutastr_replace(" """$ruta);
$tipo$_FILES['fichero']['type'];
if(!((
strpos($tipo"gif") || strpos($tipo"jpeg")))) {
echo 
'La extensión o el tamaño de los archivos no es correcta'
return 
false;
}
else 
{
$destino $carpeta.'/'.$cad.'.'.$tipo;
crearThumb$destino$destino500true );
}
       }
// hacemos el INSERT en la BD
$sqlInsertNot mysql_query("INSERT INTO galeriajacobo
(imagen_jacobo) VALUES ('$destino')"
,$db_link) or die(mysql_error());
// enviamos un mensaje de exito
$notok="Imagen publicada correctamente, puedes verla en la página de inicio.";
}else{
// si el formulario envia algun campo vacio
// enviamos un mensaje de error
$error="* ¡Atención! Recuerda haber insertado la imagen y recuerda haber aceptado<br> las condiciones.";
}
}
?>
pero me da un error, ¿Que es lo que esta mal?
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 16:08.