Foros del Web » Programando para Internet » PHP »

Problema subiendo imagen con php

Estas en el tema de Problema subiendo imagen con php en el foro de PHP en Foros del Web. Buenas otra vez! para variar encontré otro error en mi código xD a ver si me pueden ayudar a arreglar este "uploader" casero que hice, ...
  #1 (permalink)  
Antiguo 22/07/2010, 07:02
 
Fecha de Ingreso: julio-2010
Ubicación: Galicia
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 9
Problema subiendo imagen con php

Buenas otra vez! para variar encontré otro error en mi código xD a ver si me pueden ayudar a arreglar este "uploader" casero que hice, el problema radica en que no filtra como yo le mando, si no que sube el archivo que le indiques aunque no sea .jpeg, ojalá encuentren el fallo :P
Código PHP:
    if(isset($_POST['Modelo']))//Validamos que el formulario fue enviado
    
{
        
//variables BD
        
$modelo=$_POST["Modelo"];
        
$precio=$_POST["Precio"];
        
$tipo=$_POST["Tipo"];
        
//variables subir archivo
        
$nombre_archivo=$_FILES['fichero']['name'];
        
$tipo_archivo=$_FILES['fichero']['type'];
        
$tamano_archivo=$_FILES['fichero']['size'];
        
$ruta_archivo=$_FILES['fichero']['tmp_name'];
        
//comprobar si las caracteristicas son las deseadas
        
if($tipo_archivo=="jpeg" && $tamano_archivo <25000)
        {
            echo
"El archivo debe ser .jpeg y pesar menos de 250Kb.";
        }
        else
        {
            if (
move_uploaded_file($_FILES['fichero']['tmp_name'], "fotos/".$nombre_archivo))
            {
                
mysql_query("INSERT INTO coches(foto,modelo,precio,tipo) VALUES ('$nombre_archivo','$modelo','$precio','$tipo')");
                echo 
"El fichero ya ha sido cargado correctamente en imágenes como $nombre_archivo .";
            }
            else
            {
                echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
            }
        }
    } 
Gracias por su ayuda
  #2 (permalink)  
Antiguo 22/07/2010, 07:25
 
Fecha de Ingreso: abril-2010
Ubicación: Colombia
Mensajes: 229
Antigüedad: 14 años
Puntos: 2
Respuesta: Problema subiendo imagen con php

Bueno primero imprime las variables haber si te estan trayando resultados:

echo "tipo_archivo = ".$tipo_archivo."<br>";

echo "tamano_archivo = ".$tamano_archivo."<br>";
  #3 (permalink)  
Antiguo 22/07/2010, 07:36
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: Problema subiendo imagen con php

Código PHP:
...
 if(
$tipo_archivo=="jpeg" && $tamano_archivo <25000) {
            echo
"El archivo debe ser .jpeg y pesar menos de 250Kb.";
 }
else
... 
significa que subirá cualquiera que no sea .jpeg y tenga más de 250kb
debes cambiar la condición
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #4 (permalink)  
Antiguo 22/07/2010, 07:51
 
Fecha de Ingreso: marzo-2009
Mensajes: 35
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problema subiendo imagen con php

Te recomiendo usar la clase class.upload para hacer el trabajo que deseas hacer es muy buena, recomendado 100% , te maneja errores , conbierte formatos tamaños y todo muy facilmente.
saludos!
  #5 (permalink)  
Antiguo 22/07/2010, 09:25
 
Fecha de Ingreso: diciembre-2009
Ubicación: España
Mensajes: 380
Antigüedad: 14 años, 4 meses
Puntos: 1
Respuesta: Problema subiendo imagen con php

Cita:
Iniciado por jcxnet Ver Mensaje
Código PHP:
...
 if(
$tipo_archivo=="jpeg" && $tamano_archivo <25000) {
            echo
"El archivo debe ser .jpeg y pesar menos de 250Kb.";
 }
else
... 
significa que subirá cualquiera que no sea .jpeg y tenga más de 250kb
debes cambiar la condición
Creo que como dice jcxnet en vez de :
if($tipo_archivo==
Seria:
if($tipo_archivo!=
  #6 (permalink)  
Antiguo 22/07/2010, 18:32
 
Fecha de Ingreso: julio-2010
Ubicación: Galicia
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Problema subiendo imagen con php

Ah si disculpad, me faltó negar esa condición !, el caso es que permite subir archivos .jpeg igualmente, cosa que no debería permitir. En cuanto a lo de class.upload...no tengo ni idea de como rula eso, me lo miraré a ver si sale algo bueno!
  #7 (permalink)  
Antiguo 24/07/2010, 02:00
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Problema subiendo imagen con php

a ver a ver el problema esta en que segun yo recuerde
esto:

$tipo_archivo=$_FILES['fichero']['type'];

devuelve algo como esto:

"image/jpeg"

por lo que deberias cambiar el

if($tipo_archivo=="jpeg" && $tamano_archivo >25000)

por

if($tipo_archivo!="image/jpeg" && $tamano_archivo <25000)
  #8 (permalink)  
Antiguo 24/07/2010, 09:36
 
Fecha de Ingreso: septiembre-2009
Mensajes: 230
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Problema subiendo imagen con php

Jajaja no es asi.... Ninguna de las formas que dicen, tenes que pasarlo primero por un strpos:

Código PHP:
    if ( !empty($HTTP_POST_FILES['userfile']['name']) )         $file_name         $HTTP_POST_FILES['userfile']['name'];
    if ( !empty(
$HTTP_POST_FILES['userfile']['tmp_name']) )    $file_name_tmp    $HTTP_POST_FILES['userfile']['tmpname'];
    if ( !empty(
$HTTP_POST_FILES['userfile']['type']) )         $file_type         $HTTP_POST_FILES['userfile']['type'];
    if ( !empty(
$HTTP_POST_FILES['userfile']['size']) )     $file_size         $HTTP_POST_FILES['userfile']['size'];



    if ( empty(
$file_name) )            $error['file']                    = 'Es obligatorio completar éste campo.';
                                        
    if (!( (
strpos($file_type"gif") or strpos($file_type"png") or strpos($file_type"jpg") or strpos($file_type"jpeg") ) ))
                                        
$error['file']                    = 'La imagen no concuerda con los tipos permitidos. '.$file_type;

    if (! (
$file_size 300000) )        $error['file']                    = 'La imagen pesa más de 300KBytes.'
Espero que te sirva, saludos!
  #9 (permalink)  
Antiguo 24/07/2010, 09:47
 
Fecha de Ingreso: julio-2010
Ubicación: Galicia
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 9
Respuesta: Problema subiendo imagen con php

Vale, muchísimas gracias a todos, sobre todo a Mxrck, y por cierto el valor que devuelve $_FILES['fichero']['type'] es concretamente "image/pjpeg"
lo que hice fue poner un echo $tipo_fichero para comprobarlo y ya vi el error! Gracias por darme la pista de que podía estar mal el tipo de fichero! :D

Etiquetas: Ninguno
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 19:00.