Foros del Web » Programando para Internet » PHP »

Problema con subida de imagenes

Estas en el tema de Problema con subida de imagenes en el foro de PHP en Foros del Web. Hola amigos que tal. Tengo un problema con la subida de imagenes, pues resulta que realicé un script el cual funciona en mi localhost (windows), ...
  #1 (permalink)  
Antiguo 25/07/2006, 08:57
Avatar de elunicode  
Fecha de Ingreso: noviembre-2005
Mensajes: 66
Antigüedad: 18 años, 5 meses
Puntos: 2
Problema con subida de imagenes

Hola amigos que tal.

Tengo un problema con la subida de imagenes, pues resulta que realicé un script el cual funciona en mi localhost (windows), al momento de subir este archivo al servidor web (linux) realicé una prueba y aparentemente todo estaba bien, sin embargo, la imagen que subí pesaba apenas 23 Kb, cuando intenté subir una imagen más pesada de 200 kb no me indicó ningún error, y mi ventana se quedó en blanco, hice una prueba con un archivo de 40 Kb y tampoco la he podido subir y me da el mismo resultado sin indicarme ningún tipo de error.

Mi pregunta es la siguiente, ¿a que se deberá este problema?, pues aparente el código está bien, porque tanto en mi localhost, como en mi servidor me ha funcionado. ¿Será un problema de configuración de php o de apache?

Es importante mencionar también, que antes de subir la imagen la estoy validando, solo permite subir imagenes "jpg", con un peso máximo de "100 Kb".

El código es el siguiente

Código PHP:

// VALIDACION DEL ARCHIVO A SUBIR
$imagen_nombre $_FILES['CaminoArchivo']['name'];
$imagen_tipo $_FILES['CaminoArchivo']['type']; //tipo del archivo a subir
$imagen_size $_FILES['CaminoArchivo']['size']; //tamaño del archivo a subir

if ($imagen_nombre == "") { 
    
header("location:imparc.php?novalido=N");
    exit();
}

if (
$imagen_tipo <> "image/jpeg") {
    
header("location:imparc.php?novalido=NT");
    exit();
}

if (
$imagen_size || $imagen_size 100000) {
    
header("location:imparc.php?novalido=NS");    
    exit();
}

include(
"datos.php");

//---------------------------------------------
//Scripts para Importacion de Archivos

//Asignar un nuevo nombre a un archivo subido
//Este nombre se asigna en base a un código aleatorio generado

    
    //Generamos el tiempo en el cual se creo el archivo, para asignar al nombre del archivo que se subirá
    
mt_srand((double)microtime()*1000000);  //inicializa el motor de numeros aleatorios
    
$randvar =  mt_rand(1,10000000); //genera un numero aleatorio
    
settype($randvar,"string");
    
$extension=explode(".",$imagen_nombre);
    
    
//genera un nombre aleatorio del archivo y 
    //obtiene la extensión del archivo a partir del arreglo posicion n-1
    
$nuevo_archivo $randvar.".".$extension[count($extension)-1];  //solo nombre de archivo 


    
while (file_exists($caminofoto.$nuevo_archivo))  //Si el archivo existe 
    
{
            
$randvar =  mt_rand(1,10000000);
            
settype($randvar,"string");
            
$nuevo_archivo =  $randvar.".".$extension[count($extension)-1];
    }



//Conexión Base de Datos

$Conexion=mysql_connect($hostlocal,$usuario,$password);
mysql_select_db($base,$Conexion);

$imagen $_FILES['CaminoArchivo']['tmp_name']; //obtenemos el nombre de la imagen temporal subida
if(copy($imagen,$caminofoto.$nuevo_archivo)) //no todos los servidores permiten copy
//if(move_uploaded_file($imagen,$caminofoto.$nuevo_archivo))
{
    
$result mysql_query("INSERT INTO foto VALUES(0,'','$nuevo_archivo')",$Conexion);
    if(!
$result){
        echo 
mysql_errno." ".mysql_error();
    }
    
$destino $nuevo_archivo;
    
$CodigoFoto=mysql_insert_id($Conexion);
    
$mensaje "Operación terminada exitosamente";
}else{
    
$mensaje "El archivo no pudo ser subido debido a un problema con el servidor, por favor, inténtalo más tarde.";
}

?> 
Gracias.
  #2 (permalink)  
Antiguo 25/07/2006, 11:05
 
Fecha de Ingreso: mayo-2006
Mensajes: 64
Antigüedad: 17 años, 11 meses
Puntos: 0
No se a que se debe, pero a mi me pasa eso siempre.
Depende del servidor donde esté subida la página. Aunque con las que yo me he encontrado dejaban archivos de mucho mas tamaño.
  #3 (permalink)  
Antiguo 25/07/2006, 11:22
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
esto se debe ya que tú debes configurar tu php para que acepte upload de N tamaño.
eso lo debes hacer en tu php.ini
en caso de un linux este archivo esta en:
/etc/php.ini

lo debes editar y buscar el suguiente parrafo
Código:
# vi /etc/php.ini
busca la palabara upload y en las lineas aprox. 405 (en mi caso) lo encontraras el tamaño maximo que acepta tu php que suban

Código:
    392
    393 ;;;;;;;;;;;;;;;;
    394 ; File Uploads ;
    395 ;;;;;;;;;;;;;;;;
    396
    397 ; Whether to allow HTTP file uploads.
    398 file_uploads = On
    399
    400 ; Temporary directory for HTTP uploaded files (will use system default i        f not
    401 ; specified).
    402 ;upload_tmp_dir =
    403
    404 ; Maximum allowed size for uploaded files.
    405 upload_max_filesize = 2M
    406
    407
para terminar y tengan efectos estos cambios debes reiniciar tu apache
ej:
servidor redhat
Código:
# service httpd restart
o
# /etc/rc.d/initd.d/httpd restart
servidor debian
Código:
# /etc/xinitd/apache2 restart
espero que te halla servido
  #4 (permalink)  
Antiguo 25/07/2006, 11:25
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Revisen su configuración de PHP y de su servidor HTTP .. Ambos imponen o pueden imponer todo tipo de restricciones por configuración:

http://www.forosdelweb.com/showpost....&postcount=146

Sobre todo la configuración de "Apache" si es que lo usan como servidor HTTP .. tamaños tan pequeños suelen ser de restricción de Apache (configuración) .. pues "PHP" por defecto suele estár mucho más alto (2 Megabytes).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 25/07/2006, 11:39
 
Fecha de Ingreso: mayo-2006
Mensajes: 64
Antigüedad: 17 años, 11 meses
Puntos: 0
en el caso del apache en nuestro pc se puede cambiar, pero en internet es el servidor donde tienes alojada la página quien impone y no deja cambiar esto, ¿no?
  #6 (permalink)  
Antiguo 25/07/2006, 11:46
Avatar de .php  
Fecha de Ingreso: julio-2006
Mensajes: 481
Antigüedad: 17 años, 9 meses
Puntos: 5
lamentablemente no
son las reglas del servidor, pero puedes enviar un correo sugiriendo una configuracion, pero para esto debes averiguar bien que es lo que vas a solicitar y como. en resumen no tantas vueltas y al grano, para que te pesquen
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:53.