Foros del Web » Programando para Internet » PHP »

Upload Imagen Problema

Estas en el tema de Upload Imagen Problema en el foro de PHP en Foros del Web. Me sube todo tido de foto ...pero tengo unas que son de una camara digital sony ... que las fotos pesan 2,5 MB , el ...
  #1 (permalink)  
Antiguo 27/01/2009, 17:53
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Upload Imagen Problema

Me sube todo tido de foto ...pero tengo unas que son de una camara digital sony ... que las fotos pesan 2,5 MB , el upload.php carga normal... parece como que la sube ... pero me fijo y no la sube...
como puedo arreglar esto?
las fotos que subo pesan menos de 1 MB ... subi una de 1024 kb y subio igual.

mi codigo es este:

Código PHP:
<?php include("seguridad.php"); ?>
<?php
ini_set
('memory_limit''64M');
  
# DETAILS
  
$UPLOAD_DIR $_POST['directorios'];    # UPLOAD DIRECTORY
  
$max_width  '650';            # WIDTH TO RESIZE IMAGES ABOVE IT
  
$max_height '500';            # HEIGHT TO RESIZE IMAGES ABOVE IT
   
  # DETECT UPLOAD PRESS
  
if(isset($_POST['upload'])){
    
# ADD HERE THE CODE FOR ANY OTHER FIELDS YOU MIGHT HAVE
     
    # GET UPLOADED FILES
    
$photo $HTTP_POST_FILES['photo'];
    foreach(
$photo['name'] as $file_id => $file){
      
# IF FILE IS IMAGE
      
if($file != NULL && (strstr($file'.jpg') || strstr($file'.png') || strstr($file'.gif'))){
        
# REPLACE QUOTES
        
$file str_replace("'""`"$file);
        
$file str_replace('"''`'$file);
        
# COMPOSE URL
        
$url $UPLOAD_DIR.'/'.$file;
        
# COPY FILE TO URL
        
if(copy($photo['tmp_name'][$file_id],$url)){
          
# DELETE TMP FILE
          
unlink($photo['tmp_name'][$file_id]);
          
# GET IMAGE DETAILS
          
$data GetImageSize($url);
          
$mime $data['mime'];
          
# IF IMAGE IS BIGGER THEN MAX VALUES
          
if (($data[0] > $max_width) or ($height $max_height)) {
            
# IF WIDTH IS BIGGER
            
if ($data[0] > $max_width) {
              
$width 50000000000000;
              
$height 50000000000000;
            }
            
# IF HEIGHT IS BIGGER AFTER WIDTH BASED RESIZE
            
if ($height $max_height) {
              
$height $max_height;
              
$width $data[0]/($data[1]/$height);
            }
            
# CRATE NEW IMAGE
            
$frame ImageCreateTrueColor($width$height);
            
# CRATE FILE IMAGE
            
if ($mime == 'image/gif') {
              
$im ImageCreateFromGIF($url);
            } else if (
$mime == 'image/png') {
              
$im ImageCreateFromPNG($url);
            } else if (
$mime == 'image/jpeg') {
              
$im ImageCreateFromJPEG($url);
            }
            
# RESIZE
            
imagecopyresized ($frame$im0000$width$height$data[0], $data[1]);
            
# WRITE RESIZED IMAGE
            
imagejpeg($frame,$url,80);
            
imagedestroy($frame);
            
imagedestroy($im);
             
            
# ADD HERE THE CODE THAT INSERTS DATA INTO A DATABASE IF YOU WISH
            # FILE NAME VARIABLE IS  $file
          
}
        }
      }
    }
  }
?>
<style type="text/css">
<!--
.Estilo1 {
    font-size: 24px;
    font-weight: bold;
}
-->
</style>

<p align="center" class="Estilo1">Admin Panel AlternativeGC.com.ar </p>
<p><strong>Subir Foto: </strong></p>
<form action='' method='post' enctype='multipart/form-data'>
  <p>PHOTO 1: 
    <input type=file name=photo[]>
    <br>
PHOTO 2: 
<input type=file name=photo[]>
<br>
PHOTO 3: 
<input type=file name=photo[]>
<br>
PHOTO 4: 
<input type=file name=photo[]>
<br>
PHOTO 5: 
<input type=file name=photo[]>
  </p>
  <p>Carpeta : <select name="directorios" id="directorios"> 
<?php 
    
// poner la ruta del directorio, en este caso es el actual 
    
$dir './'
    if (
$fd opendir($dir)) {  
        while ((
$file readdir($fd)) !== false) {  
            
// Si es un directorio y es distinto al actual (.) y al anterior (..) 
            
if (is_dir($dir $file) && $file!="." && $file!="..") { 
                
$opcion '<option value="' $file '">' $file '</option>'
                echo 
$opcion
            } 
         }  
      
closedir($fd);  
    } 
    else { 
        echo 
"<br>No es ruta valida";  
    }  
?> 
</select> 
    <input type="submit" name="upload" value="Upload" />
  </p>
  <p>&nbsp;</p>
  <p>
  
</form>
<p><strong>Crear Carpeta:</strong></p>
<form id="form1" name="form1" method="post" action="crear1.php">
  <label for="textarea"></label>
  <label for="textarea"></label>
  <label for="textfield"></label>
  <p>Nombre de Carpeta:
    <input type="text" name="carpeta" id="carpeta" />
    <input type="submit" name="Submit2" value="Crear Carpeta" id="Submit2" />
  </p>
  <p>
    <label for="Submit"></label>
  </p>
</form>
<p></p>
  <p><strong>Borrar Carpeta:</strong></p> 
  <form name="form1" method="post" action="borrar1.php">
    <label for="Submit"></label>
    Carpeta : 
    <select name="directorios" id="directorios">
      <?php 
    
// poner la ruta del directorio, en este caso es el actual 
    
$dir './'
    if (
$fd opendir($dir)) {  
        while ((
$file readdir($fd)) !== false) {  
            
// Si es un directorio y es distinto al actual (.) y al anterior (..) 
            
if (is_dir($dir $file) && $file!="." && $file!="..") { 
                
$opcion '<option value="' $file '">' $file '</option>'
                echo 
$opcion
            } 
         }  
      
closedir($fd);  
    } 
    else { 
        echo 
"<br>No es ruta valida";  
    }  
?>
    </select>
<input type="submit" name="Submit" value="Borrar" id="Submit">
  </form>&nbsp;</p>
<p>&nbsp;</p>
  #2 (permalink)  
Antiguo 27/01/2009, 18:28
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Upload Imagen Problema

quizas tengas problemas con el tamaño permitido de subida

prueba seteando un valor mayor

Código PHP:
ini_set('upload_max_filesize''64M'); 
  #3 (permalink)  
Antiguo 27/01/2009, 18:45
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Upload Imagen Problema

Cita:
Iniciado por korg1988 Ver Mensaje
quizas tengas problemas con el tamaño permitido de subida

prueba seteando un valor mayor

Código PHP:
ini_set('upload_max_filesize''64M'); 
No che... pasa lo mismo.
  #4 (permalink)  
Antiguo 27/01/2009, 19:27
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 1 mes
Puntos: 33
Respuesta: Upload Imagen Problema

daviteN:

Prueba modificando estas variables -> (php.ini)
max_execution_time =
max_input_time =
Tambien incrementa el ->
upload_max_filesize = '4600M'
En algun lado lei que habia un bug con esa cantidad!!!.
Y la forma de evitarlo es incrementando mas de lo normal.

Saludos
Franco
  #5 (permalink)  
Antiguo 27/01/2009, 19:27
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Upload Imagen Problema

Pues no he probado el codigo, pero lo que siempre hago en casos como esto es poner una especie de banderas (echo 'algo'), digamos dentro de cada if, para ver si esta siguiendo el flujo correcto el script, o si hay algun error por ahi que hace que se desvie el flujo
  #6 (permalink)  
Antiguo 27/01/2009, 20:34
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Upload Imagen Problema

No me deja editar el php.ini . mi host.

me dije el "upload_max_filesize = 8M"

Lo puedo ver y eso esta asi.
  #7 (permalink)  
Antiguo 27/01/2009, 20:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Upload Imagen Problema

Veo que estas redimensionando la imagen al subirla, un problema puede ser al abrir imagenes grandes que te acabes la memoria reservada de PHP, revisa el memory_limit.

Saludos
  #8 (permalink)  
Antiguo 28/01/2009, 07:38
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Upload Imagen Problema

GatorV si te fijas en el codigo el ya esta seteando el memory_limit en la tercer linea
yo habia tirado la idea de setear tambien el upload_max_filesize pensando que el problema estaba en la subida y por eso no funcionaba el resto del codigo, pero parece ser que lo tienen bloqueado desde su hosting como dice, asi que creo que estas al horno! jajaj (a mi en mi hosting tambien me lo bloquean y solo tengo 2 mb para subir
  #9 (permalink)  
Antiguo 28/01/2009, 11:39
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Upload Imagen Problema

pero si el maxupload lo tengo en 8M .... por que ?
  #10 (permalink)  
Antiguo 28/01/2009, 12:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Upload Imagen Problema

Mmm aunque este ahí el memory_limit revisa que en realidad lo este poniendo, muchas veces también esa directiva esta bloqueada y aunque tu llames a ini_set la memoria queda igual.

Saludos
  #11 (permalink)  
Antiguo 28/01/2009, 12:30
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Upload Imagen Problema

Cita:
Iniciado por GatorV Ver Mensaje
Mmm aunque este ahí el memory_limit revisa que en realidad lo este poniendo, muchas veces también esa directiva esta bloqueada y aunque tu llames a ini_set la memoria queda igual.

Saludos
MIra en el php.ini tengo asi:

memory_limit = 32
upload_max_filesize = 8M
  #12 (permalink)  
Antiguo 28/01/2009, 12:39
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Upload Imagen Problema

Prueba aumentarlo a 256 MB el memory_limit, si es 2.5 MB la foto, debe de ser un JPG o RAW y a la hora de descomprimirla puede sobrepasar los 64 MB de memoria..
  #13 (permalink)  
Antiguo 28/01/2009, 12:53
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Upload Imagen Problema

Cita:
Iniciado por GatorV Ver Mensaje
Prueba aumentarlo a 256 MB el memory_limit, si es 2.5 MB la foto, debe de ser un JPG o RAW y a la hora de descomprimirla puede sobrepasar los 64 MB de memoria..
lo puse 2n 256 ... y tampoco... :S ... mira a mi antes cuando queria subir las fotos me aparece memory insuficint.. algo asi... hasta que uno de aca del foto me dice que ponga esto: ini_set('memory_limit', '64M');
y perfecto me subia todo... pero resulta que ahora las fotos estas de 2.5 M no las puedo subir...pero no salta ese error directamente cargo todo como se la estaria subiendo.. y parece que la sube lo mas bien... pero me fijo y no las sube. :S
  #14 (permalink)  
Antiguo 28/01/2009, 14:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Upload Imagen Problema

Prueba separar por procesos tu script, pon nadamás la parte de subir archivos, y verifica si se suben y los mueve a la carpeta especificada, y después agrega la parte de redimensionar, así puedes ver en que parte se esta ocasionando el error.

Saludos
  #15 (permalink)  
Antiguo 28/01/2009, 14:32
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Upload Imagen Problema

Cita:
Iniciado por GatorV Ver Mensaje
Prueba separar por procesos tu script, pon nadamás la parte de subir archivos, y verifica si se suben y los mueve a la carpeta especificada, y después agrega la parte de redimensionar, así puedes ver en que parte se esta ocasionando el error.

Saludos
Lo puse asi y tampoco CHE :S

Código PHP:
<?
  
# DETAILS
  
$UPLOAD_DIR './';    # UPLOAD DIRECTORY

   
  # DETECT UPLOAD PRESS
  
if(isset($_POST['upload'])){
    
# ADD HERE THE CODE FOR ANY OTHER FIELDS YOU MIGHT HAVE
     
    # GET UPLOADED FILES
    
$photo $HTTP_POST_FILES['photo'];
    foreach(
$photo['name'] as $file_id => $file){
      
# IF FILE IS IMAGE
      
if($file != NULL && (strstr($file'.jpg') || strstr($file'.png') || strstr($file'.gif'))){
        
# REPLACE QUOTES
        
$file str_replace("'""`"$file);
        
$file str_replace('"''`'$file);
        
# COMPOSE URL
        
$url $UPLOAD_DIR.'/'.$file;
        
# COPY FILE TO URL
        
if(copy($photo['tmp_name'][$file_id],$url)){
          
# DELETE TMP FILE
          
unlink($photo['tmp_name'][$file_id]);
          
# GET IMAGE DETAILS
          
$data GetImageSize($url);
          
$mime $data['mime'];
             
            
# ADD HERE THE CODE THAT INSERTS DATA INTO A DATABASE IF YOU WISH
            # FILE NAME VARIABLE IS  $file
          
}
        }
      }
    }
?>
<style type="text/css">
<!--
.Estilo1 {
    font-size: 24px;
    font-weight: bold;
}
-->
</style>

<p align="center" class="Estilo1">Admin Panel AlternativeGC.com.ar </p>
<p><strong>Subir Foto: </strong></p>
<form action='' method='post' enctype='multipart/form-data'>
  <p>PHOTO 1: 
    <input type=file name=photo[]>
    <br>
PHOTO 2: 
<input type=file name=photo[]>
<br>
PHOTO 3: 
<input type=file name=photo[]>
<br>
PHOTO 4: 
<input type=file name=photo[]>
<br>
PHOTO 5: 
<input type=file name=photo[]>
  </p>
    <input type="submit" name="upload" value="Upload" />
  </p>
  <p>&nbsp;</p>
  <p>
  
</form>
  #16 (permalink)  
Antiguo 28/01/2009, 14:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Upload Imagen Problema

Te recomiendo usar move_uploaded_file en lugar de copy, por otro lado usa $_FILES en lugar de $HTTP_POST_FILES, y a la hora de subir tu imagen verifica que el valor de $_FILES['photo']['error'] sea diferente de 0.

Saludos
  #17 (permalink)  
Antiguo 28/01/2009, 15:00
 
Fecha de Ingreso: enero-2007
Mensajes: 56
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Upload Imagen Problema

Cita:
Iniciado por GatorV Ver Mensaje
Te recomiendo usar move_uploaded_file en lugar de copy, por otro lado usa $_FILES en lugar de $HTTP_POST_FILES, y a la hora de subir tu imagen verifica que el valor de $_FILES['photo']['error'] sea diferente de 0.

Saludos
LO PUSE ASI ,y TAMPOCKO:
Código PHP:
<?
  
# DETAILS
  
$UPLOAD_DIR './';    # UPLOAD DIRECTORY

   
  # DETECT UPLOAD PRESS
  
if(isset($_POST['upload'])){
    
# ADD HERE THE CODE FOR ANY OTHER FIELDS YOU MIGHT HAVE
     
    # GET UPLOADED FILES
    
$photo $_FILES['photo'];
    foreach(
$photo['name'] as $file_id => $file){
      
# IF FILE IS IMAGE
      
if($file != NULL && (strstr($file'.jpg') || strstr($file'.png') || strstr($file'.gif'))){
        
# REPLACE QUOTES
        
$file str_replace("'""`"$file);
        
$file str_replace('"''`'$file);
        
# COMPOSE URL
        
$url $UPLOAD_DIR.'/'.$file;
        
# COPY FILE TO URL
        
if(move_uploaded_file($photo['tmp_name'][$file_id],$url)){
          
# DELETE TMP FILE
          
unlink($photo['tmp_name'][$file_id]);
          
# GET IMAGE DETAILS
          
$data GetImageSize($url);
          
$mime $data['mime'];
             
            
# ADD HERE THE CODE THAT INSERTS DATA INTO A DATABASE IF YOU WISH
            # FILE NAME VARIABLE IS  $file
          
}
        }
      }
    }
?>
<style type="text/css">
<!--
.Estilo1 {
    font-size: 24px;
    font-weight: bold;
}
-->
</style>

<p align="center" class="Estilo1">Admin Panel AlternativeGC.com.ar </p>
<p><strong>Subir Foto: </strong></p>
<form action='' method='post' enctype='multipart/form-data'>
  <p>PHOTO 1: 
    <input type=file name=photo[]>
    <br>
PHOTO 2: 
<input type=file name=photo[]>
<br>
PHOTO 3: 
<input type=file name=photo[]>
<br>
PHOTO 4: 
<input type=file name=photo[]>
<br>
PHOTO 5: 
<input type=file name=photo[]>
  </p>
    <input type="submit" name="upload" value="Upload" />
  </p>
  <p>&nbsp;</p>
  <p>
  
</form>
  #18 (permalink)  
Antiguo 29/01/2009, 05:52
Avatar de korg1988  
Fecha de Ingreso: junio-2006
Ubicación: Santa Fe, Argentina
Mensajes: 825
Antigüedad: 17 años, 10 meses
Puntos: 19
Respuesta: Upload Imagen Problema

master creo que tu error esta aca

Código PHP:
$url $UPLOAD_DIR.'/'.$file
cambia esa linea por
Código PHP:
$url $UPLOAD_DIR.$file
y contame que tal!
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 23:06.