Foros del Web » Programando para Internet » PHP »

no me hace la subida de archivo extension png

Estas en el tema de no me hace la subida de archivo extension png en el foro de PHP en Foros del Web. Hola, intento subir un archivo con extension png pero no me deja, en principio tenia un condicional donde permitia subir archivos png pero el problema ...
  #1 (permalink)  
Antiguo 14/12/2011, 18:37
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
no me hace la subida de archivo extension png

Hola, intento subir un archivo con extension png pero no me deja, en principio tenia un condicional donde permitia subir archivos png pero el problema que tengo es que el archivo al intentarlo subirlo me tarda un poco y luego me da este error:


The site could be temporarily unavailable or too busy. Try again in a few
moments.
If you are unable to load any pages, check your computer's network
connection.
If your computer or network is protected by a firewall or proxy, make sure
that Firefox is permitted to access the Web.


pero claro estoy programando en modo local, osea que no necesito internet, con los demas archivos no me da problema, alguna idea de que puede ser, saludos.
  #2 (permalink)  
Antiguo 15/12/2011, 00:46
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me hace la subida de archivo extension png

Sabiendo el codigo es mas facil ayudarte, saludos
  #3 (permalink)  
Antiguo 15/12/2011, 07:38
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: no me hace la subida de archivo extension png

Hola marcofbb, el condicional para comprobar la extension lo tengo bien, ya que si lo anulo me da el mismo error, depurando un poco el codigo, me he dado cuenta que el error esta en la redimension de la imagen, ya que aparte de subirla hago una redimension a las imagenes, probe de quitar el codigo que la redimensiona y me funciona perfectamente la subida de archivos png, el codigo que utilizo para realizar la redimension es este.

Le he dado muchas vueltas al tema y no consigo ver mi error, no se si tiene algo que ver, pero la imagen png la cree yo con un programa de dibujo, podria ser que no pueda redimensionar o algo asin, bueno este es el codigo con la que redimensiono, aunque reitero si no utilizo la imagen png que comento la redimension y todo el codigo funciona perfecto, este es el codigo:




Código PHP:
Ver original
  1. <?php
  2. $imagen_original=imagecreatefromjpeg('imagenes/'.$_FILES["archivo"]["name"]);
  3. $imagen_nueva=imagecreatetruecolor(500,300);
  4. $y=imagesy($imagen_original);
  5. $x=imagesx($imagen_original);
  6. imagecopyresized($imagen_nueva,$imagen_original,0,0,0,0,500,300,$x,$y);
  7. $redimension=imagejpeg($imagen_nueva,'imagenes/'.$_FILES['archivo']['name']);
  8. if (imagejpeg($imagen_nueva,'imagenes/'.$_FILES['archivo']['name'])){
  9.        }else{
  10.         echo 'error en la redimension de la imagen';
  11.         }
  12. ?>

Espero que alguien me pueda dar la solucion, saludos.
  #4 (permalink)  
Antiguo 15/12/2011, 08:19
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me hace la subida de archivo extension png

Lo que pasa es que tu redimension es solo para Jpg, te recomiendo buscar una clase de redimencion para facilitar todo.

Saludos
  #5 (permalink)  
Antiguo 15/12/2011, 08:26
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: no me hace la subida de archivo extension png

solo utilizo tres tipos de archivos, crees que es necesario alguna clase, o me aconsejas un condicional, sabes de alguna clase para la redimension?saludos
  #6 (permalink)  
Antiguo 15/12/2011, 08:28
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me hace la subida de archivo extension png

Para tener el codigo mas limpio te recomiendo una clase

http://www.cristalab.com/tutoriales/...genes-c73376l/
http://www.cristalab.com/tutoriales/...actas-c91654l/

Saludos
  #7 (permalink)  
Antiguo 15/12/2011, 08:39
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: no me hace la subida de archivo extension png

marcofbb gracias nuevamente por tu colaboracion, esa clase creo que sera la que me hace falta, aunque probe con un condicional pero no me funciona, lo hice asin:

Código PHP:
Ver original
  1. <?php
  2. if($_FILES['archivo']['type']='image/jpeg'){
  3.     $imagen_original=imagecreatefromjpeg('imagenes/'.$_FILES["archivo"]["name"]);
  4.     $imagen_nueva=imagecreatetruecolor(500,300);
  5.     $y=imagesy($imagen_original);
  6.     $x=imagesx($imagen_original);
  7.     imagecopyresized($imagen_nueva,$imagen_original,0,0,0,0,500,300,$x,$y);
  8.     $redimension=imagejpeg($imagen_nueva,'imagenes/'.$_FILES['archivo']['name']);
  9.     if (imagejpeg($imagen_nueva,'imagenes/'.$_FILES['archivo']['name'])){
  10.            }else{
  11.             echo 'error en la redimension de la imagen';
  12.             }
  13. }
  14. if($_FILES['archivo']['type']='image/png'){
  15.     $imagen_original=imagecreatefrompng('imagenes/'.$_FILES["archivo"]["name"]);
  16.     $imagen_nueva=imagecreatetruecolor(500,300);
  17.     $y=imagesy($imagen_original);
  18.     $x=imagesx($imagen_original);
  19.     imagecopyresized($imagen_nueva,$imagen_original,0,0,0,0,500,300,$x,$y);
  20.     $redimension=imagepng($imagen_nueva,'imagenes/'.$_FILES['archivo']['name']);
  21.     if (imagepng($imagen_nueva,'imagenes/'.$_FILES['archivo']['name'])){
  22.            }else{
  23.             echo 'error en la redimension de la imagen';
  24.             }
  25. }
  26.  
  27.     ?>
pero me da este error:

Warning: imagecreatefrompng() [function.imagecreatefrompng]: 'imagenes/coche.jpg' is not a valid PNG file in C:\wamp\www\ejercicios/subida_archivos.php on line 68

si creo solo un if si me funciona en cualquier extension, pero si pongo los if asin no me funciona, a que es debido este error.

Última edición por pithon; 15/12/2011 a las 09:07
  #8 (permalink)  
Antiguo 15/12/2011, 09:46
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me hace la subida de archivo extension png

es que subiste una imagen .jpg :S, antes de usar 2 if, usa un elseif entre medio.
  #9 (permalink)  
Antiguo 15/12/2011, 10:20
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: no me hace la subida de archivo extension png

marcofbb, si subi una imagen jpg, pero me tendria que ignorar lo que hay dentro del segundo if ya que solo es para archivos png, sigo sin entender como hacer un condicional para poner tres tipos de archivos, alguna ayuda, saludos.
  #10 (permalink)  
Antiguo 15/12/2011, 10:31
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me hace la subida de archivo extension png

Por ahi esto te servira:

http://www.marcofbb.com.ar/multiupload-en-php/

Te dejo mi msn: [email protected] asi tenemos una charla mas fluida
  #11 (permalink)  
Antiguo 15/12/2011, 10:46
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: no me hace la subida de archivo extension png

marcofbb, esta muy bien el enlace que me pusistes pero no me soluciona el problema de crear bien los condicionales, lo que no entiendo es si en el segundo condicional pongo esto:
Código PHP:
Ver original
  1. if($_FILES['archivo']['type']='image/png'){

porque si el archivo es jpg entra dentro de este if y me da error, espero que me lo puedas explicar saludos.
  #12 (permalink)  
Antiguo 15/12/2011, 10:52
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: no me hace la subida de archivo extension png

Si no te haz dado cuenta $_FILES['archivo']['type']='image/png' tiene UN SOLO = osea que es asignación, porque mejor no intentas con == dos iguales que es el de comparación ? Tal vez por obra y gracia del espíritu santo te funcione.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #13 (permalink)  
Antiguo 15/12/2011, 10:57
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: no me hace la subida de archivo extension png

Hola jotaincubus, es verdad no me di cuenta, muchas gracias, aunque como decia el amigo marcofbb de utilizar un elseif, como deberia hacerlo, saludos.
  #14 (permalink)  
Antiguo 15/12/2011, 11:13
marcofbb
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: no me hace la subida de archivo extension png

asi seria con elseif

Código PHP:
Ver original
  1. <?php
  2. if($_FILES['archivo']['type']=='image/jpeg'){
  3. * * $imagen_original=imagecreatefromjpeg('imagenes/'.$_FILES["archivo"]["name"]);
  4. * * $imagen_nueva=imagecreatetruecolor(500,300);
  5. * * $y=imagesy($imagen_original);
  6. * * $x=imagesx($imagen_original);
  7. * * imagecopyresized($imagen_nueva,$imagen_original,0,0,0,0,500,300,$x,$y);
  8. * * $redimension=imagejpeg($imagen_nueva,'imagenes/'.$_FILES['archivo']['name']);
  9. * * if (imagejpeg($imagen_nueva,'imagenes/'.$_FILES['archivo']['name'])){
  10. * * * * * *}else{
  11. * * * * * * echo 'error en la redimension de la imagen';
  12. * * * * * * }
  13. }
  14. elseif($_FILES['archivo']['type']=='image/png'){
  15. * * $imagen_original=imagecreatefrompng('imagenes/'.$_FILES["archivo"]["name"]);
  16. * * $imagen_nueva=imagecreatetruecolor(500,300);
  17. * * $y=imagesy($imagen_original);
  18. * * $x=imagesx($imagen_original);
  19. * * imagecopyresized($imagen_nueva,$imagen_original,0,0,0,0,500,300,$x,$y);
  20. * * $redimension=imagepng($imagen_nueva,'imagenes/'.$_FILES['archivo']['name']);
  21. * * if (imagepng($imagen_nueva,'imagenes/'.$_FILES['archivo']['name'])){
  22. * * * * * *}else{
  23. * * * * * * echo 'error en la redimension de la imagen';
  24. * * * * * * }
  25. } else { exit('Formato no compatible'); }
  26. *
  27. * * ?>

http://www.marcofbb.com.ar/estructur...nal-if-en-php/
  #15 (permalink)  
Antiguo 15/12/2011, 11:19
 
Fecha de Ingreso: mayo-2011
Mensajes: 1.201
Antigüedad: 12 años, 11 meses
Puntos: 10
Respuesta: no me hace la subida de archivo extension png

gracias marcofbb, por tu colaboracion, un saludo.

Etiquetas: extension, png, subida
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 12:53.