Foros del Web » Programando para Internet » PHP »

Servidor no coje la imagen subida

Estas en el tema de Servidor no coje la imagen subida en el foro de PHP en Foros del Web. Buenas noches amigos!! Que ilusión poder volver a escribir por aquí de nuevo después de lo que paso hace unos días!! Tengo este formulario: Código ...
  #1 (permalink)  
Antiguo 02/03/2009, 20:46
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Servidor no coje la imagen subida

Buenas noches amigos!! Que ilusión poder volver a escribir por aquí de nuevo después de lo que paso hace unos días!!

Tengo este formulario:

Código HTML:
<form action="modificacioRealClient.php" enctype="multipart/form-data" method="POST">
<b>Foto:&nbsp&nbsp<input type=file name="fotoClient">
            <br><br><br>
            
            <input type="submit" value="Subir!">
        </form> 
Y este código php:

Código PHP:
if(isset($_FILES['fotoClient']['tmp_file'])) 
        {
            if(
$_FILES['fotoClient']['type']=="image/jpeg"move_uploaded_file($_FILES['fotoClient']['tmp_name'],"./fotosClients/".$_FILES['fotoClient']['name']);
            else echo 
"La foto no está en formato JPG!";
        } 
El problema es que si intento poner una imagen que no es .jpg no me da el error, y si la pongo no me la sube...no hace nada! :S...me he mirado el FAQ y el manual de php.net...pero no sé dónde puede estar el error?

MUCHAS GRACIAS!! y salud

Última edición por bERTUZ; 02/03/2009 a las 20:55
  #2 (permalink)  
Antiguo 02/03/2009, 20:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

es fotoClient o fotoUsuari ¿cual es el índice verdadero??

digo, se congruente....


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 02/03/2009, 20:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Servidor no coje la imagen subida

¿Será porque el campo de tu formulario se llama fotoClient mientras que estás tratando de acceder a él usando como índice asociativo fotoUsuari?

EDITO: Vaya choque
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 02/03/2009, 20:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

pateketrueke y David el Grande, cierto... (gracias por vuestras respuestas, vaya fallo...)
ya está corregido!! a estas horas ya no se ni lo que escribo :S...sorry!!

aún así...sigue sin funcionar el cógido! que puede fallar?
  #5 (permalink)  
Antiguo 02/03/2009, 20:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

has un var_dump() de $_FILES para ver que contiene cuando recibas el formulario...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 02/03/2009, 21:04
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

Después de hacer el "var_dump($_FILES)" me devuelve lo siguiente:

array(1) { ["fotoClient"]=> array(5) { ["name"]=> string(11) "FlaixFM.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(23) "C:\xampp\tmp\php610.tmp" ["error"]=> int(0) ["size"]=> int(3521) } }

Última edición por bERTUZ; 02/03/2009 a las 21:13
  #7 (permalink)  
Antiguo 02/03/2009, 21:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

genial, ahí tienes la estructura de $_FILES a seguir....

has tu análisis, suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 02/03/2009, 21:13
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

...al parecer recibe correctamente la imagen, su nombre y su tipo...pero ni la sube ni hace nada :S

en cuanto al código, primero mira si se ha subido correctamente (comprobando si ha creado el temporal de la imagen), si es así, si el fichero subido es jpg, lo guarda del temporal a la carpeta /fotosClients...si el fichero no es jpg muestra mensaje de error...

no veo el error :S
  #9 (permalink)  
Antiguo 02/03/2009, 21:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

activa el reporte de errores... al comienzo de tu script
Código PHP:
error_reporting(E_ALL);
ini_set('display_errors'true); 
y repite!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 02/03/2009, 21:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

no me da ningún error :S
PD: no tendrá nada que ver el form action..en el FAQ pone esto!

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data">
  #11 (permalink)  
Antiguo 02/03/2009, 21:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

ya revisaste la carpeta donde se suben los archivos??

¿realmente NO existe el archivo??




Edito: si puede ser el action, debe ser el script que realiza el proceso... ¿esta bien eso??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 02/03/2009, 21:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

en teoría se tendrían que subir en una nueva carpeta llamada "fotosClients" dentro de la carpeta donde tengo los .html y los .php...y no hay ni fotos ni ninguna carpeta.

por si las moscas he buscado en todos los sitios de la carpeta C:\xampp (uso xampp!)

MUCHISIMAS GRACIAS por tu tiempo pateketrueke...a ver si damos con la solución! :)
  #13 (permalink)  
Antiguo 02/03/2009, 21:36
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

sí, esta correcto, el script que pongo en el action es el que tiene que subir la imagen al servidor! :S

el script "modificacioRealClient.php" (este script antes de subir la foto me modifica la información de un cliente, primero borrando la línea con la información antigua y luego volviendo a dar 'de alta' el cliente con su información nueva) --> y lo hace bien, comprobado...el var_dump() lo he puesto justo antes de empezar el código de subir la foto y me lo ha llegado a ejecutar!
  #14 (permalink)  
Antiguo 02/03/2009, 21:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

bien, en lugar del move_uploaded_file() imprime algo como "se subió" o un var_dump() de modo que te enteres de que si... eso!

o bien, si el var_dump() te sirvió antes... no cambies el action, concentrate en averiguar que paso es el que falla....

eso es "debuggear" ... y debes hacerlo solo, ya que siempre es de utilidad aprender a hacer esto....

- intenta imprimir, el archivo temporal....

- evita el uso de rutas relativas... si no sabes como se usan, no las uses!! (me refiero a los puntos al comienzo de una ruta)

- revisa en que carpeta se ejecuta el script, y en base a esto.. analiza bien como debes escribir la ruta relativa (un ../ por cada nivel)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 02/03/2009, 21:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

Código PHP:
echo "Hola";
        echo 
$_FILES['fotoClient']['tmp_file'];
        if(isset(
$_FILES['fotoClient']['tmp_file'])) 
        {
            if(
$_FILES['fotoClient']['type']=="image/jpeg"move_uploaded_file($_FILES['fotoClient']['tmp_name'],"./fotosClients/".$_FILES['fotoClient']['name']);
            else echo 
"La foto no está en formato JPG!";
        } 
...me muestra el hola...sin embargo el siguiente echo ya no me muestra nada, ni tampoco si pongo un echo "hola" después del primer if (y antes del segundo)...y si sustituyo el move_uploaded_file por un echo "hola" tampoco me llega a mostrar nada! :S

GRACIAS!
  #16 (permalink)  
Antiguo 02/03/2009, 22:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

genial... bueno, pues vuelve al principio... de nuevo!

- imprime algo
- has var_dump() del $_FILES
- sigue debuggeando...

Edito:
Cita:
Iniciado por bERTUZ Ver Mensaje
[...]
array(1) { ["fotoClient"]=> array(5) { ["name"]=> string(11) "FlaixFM.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(23) "C:\xampp\tmp\php610.tmp" ["error"]=> int(0) ["size"]=> int(3521) } }
pon mucha atención, recuerda que el índice no es tmp_file, es tmp_name

eso, el primer var_dump() te lo indico.... ¿no??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 02/03/2009, 22:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 76
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Servidor no coje la imagen subida

Dios...totalmente cierto!

Al cambiar tmp_file por tmp_name...funciona, ya sube la imagen!!
Muchísimas gracias por tu ayuda, salud y suerte!! hablamos mañana o pronto, espero :)

PD: para guardar la imagen con el nombre que yo quiera bastaría hacer un: "$_FILES['fotoClient']['name'] = $usuario" ?¿¿

SALUDOS!
  #18 (permalink)  
Antiguo 02/03/2009, 22:15
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Servidor no coje la imagen subida

si, tal ves funcione tu forma... pero lo correcto no es re-asignar el valor a $_FILES, sino... usar otro nombre, así tal cual.... variable o lo que sea

http://php.net/move_uploaded_file

Código PHP:
$foo =  'candy';
// ...
move_uploaded_file($_FILES['upload']['tmp_name'], $foo);
move_uploaded_file($_FILES['upload']['tmp_name'], '/ruta/a/algo.ext'); 
PDTA: no olvides que si tienes duda de una función concreta, busca en el manual de PHP ..

suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 20:09.