Foros del Web » Programando para Internet » PHP »

Error al subir imagenes

Estas en el tema de Error al subir imagenes en el foro de PHP en Foros del Web. Hola a todos. Quiero saber si tengo que cambiar algo en el php.ini o en el config de apache, para poder subir imagenes al servidor. ...
  #1 (permalink)  
Antiguo 29/01/2003, 13:43
 
Fecha de Ingreso: julio-2002
Mensajes: 219
Antigüedad: 15 años, 5 meses
Puntos: 0
Error al subir imagenes

Hola a todos.

Quiero saber si tengo que cambiar algo en el php.ini o en el config de apache, para poder subir imagenes al servidor.

Estoy tratando de subir imagenes por medio de un formulario, y cuando mando los datos del formulario a otra página, los datos del archivo no quedan guardados, me llegan vacios.

Se que no es problema de código, porque hasta he probado pegando códigos que me he bajado de internet para tal fin.

Gracias por a atención.

Daniel Guía.
  #2 (permalink)  
Antiguo 29/01/2003, 13:51
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues de todas formas sería bueno q pusieras alguno de los código q has usado ... De como estén hechos dependerá la configuración de PHP ...

De momento .. ves buscando (e indicanos) como tienes estas directivas de tu php.ini:

register_globals

file_uploads
upload_tmp_dir
upload_max_filesize

Por cierto .. si pegas código .. pega el codigo.php q hace el gestiona el upload y el formulario HTML q se use ..

Un saludo,
  #3 (permalink)  
Antiguo 29/01/2003, 13:52
Avatar de mveraa  
Fecha de Ingreso: diciembre-2002
Ubicación: santiago-chilito
Mensajes: 1.895
Antigüedad: 15 años
Puntos: 2
creo que es algo asi

<html>
<HEAD>
<TITLE>SUBIR FOTO JPG O GIF</TITLE>
</HEAD>
<BODY>
<H1 align="center">&nbsp;</H1>
<H1 align="center">SUBIR FOTO</H1>
<H1>&nbsp;</H1>

<form enctype="multipart/form-data" action="graba.php?" method="post">
<div align="center">IDENTIFIQUE FOTO :
<input name="userfile" type="file">
<input type="submit" value="Send File">
</div>
</form>


graba.php


<?php
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name']))
{
copy($HTTP_POST_FILES['userfile']['tmp_name'], $HTTP_POST_FILES['userfile']['name']);


/* move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $HTTP_POST_FILES['userfile']['name']);*/
echo "SU ARCHIVO HA SIDO COPIADO";
}
else
{
echo "K.O. file upload. Filename: " . $HTTP_POST_FILES['userfile']['name'];
}

?>



ojala te sirva chao
  #4 (permalink)  
Antiguo 29/01/2003, 13:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
El copy() yo lo cambiaria por: move_uploaded_file( ....)

Por lo demas por lo menos usa los arrays asociados .. Pero si usas PHP 4.1.x o superior mejor usar $_FILE .. en vez de $HTTP_POST_FILES

Un saludo,
  #5 (permalink)  
Antiguo 29/01/2003, 14:08
 
Fecha de Ingreso: julio-2002
Mensajes: 219
Antigüedad: 15 años, 5 meses
Puntos: 0
Hola de nuevo. Gracias por sus respuestas.

ASÍ ESTABAN LAS VARIABLES EN php.ini

file_uploads = On
;upload_tmp_dir =
upload_max_filesize = 2M

Y ASÍ LAS TENGO AHORA.

file_uploads = On
upload_tmp_dir = C:\Mis documentos\PHP Archivos\Nuevo Philips\Sistema
upload_max_filesize = 2M

CÓDIGO DEL FORMULARIO

<form action="subirImagen.php3" method="post" enctype="multipart/form-data" name="fImagen" id="fImagen">
<input name="origen" type="hidden" id="origen" value="origen">
Imagen: <input name="miImagen" type="file" id="miImagen">
<input name="subir" type="submit" id="subir" value="Subir Imagen">
</form>


CÓDIGO DE "subirImagen.php3"

<?
//$miImagen = $HTTP_POST_VARS['miImagen'];
//echo "IM: ".$miImagen."<br>";

$max_size = "1000";
$path="";
echo "AFUERA<br>";
if (is_uploaded_file($miImagen))
{echo "IF1<br>";
if ($miImagen_size>$max_size)
{echo "IF2<br>";
echo "EL ARCHIVO ES DEMASIADO GRANDE (max. ".$max_size." KB)<br>\n";
exit;
}
if (($miImagen_type=="image/gif") || ($miImagen_type=="image/pjpeg"))
{echo "IF3<br>";

if (file_exists($path . $miImagen_name))
{echo "IF4<br>";
echo "EL ARCHIVO YA EXISTE.<br>\n";
exit;
}

$res = copy($miImagen, $path . $miImagen_name);
if (!$res)
{echo "IF5<br>";
echo "UPLOAD FALLADO!<br>\n"; exit;
}
else
{echo "IF5<br>";
echo "UPLOAD EXITOSO!<br>\n";
}

echo "Nombre del Archivo: $miImagen_name<br>\n";
echo "Tamaño del Archivo: $miImagen_size bytes<br>\n";
echo "Formato del Archivo: $miImagen_type<br>\n";
}
else
{echo "IF3<br>";
echo "FORMATO DEL ARCHIVO ERRONEO (solo jpeg o gif).<br>\n";
exit;
}
}

?>

Gracias de nuevo.

Saludos.
  #6 (permalink)  
Antiguo 29/01/2003, 14:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pero te funciona ya o no?

No indicastes como usas en tu php.ini register_globals .. de todas formas te recomiendo que uses el código de mveraa . y en vez de copy() uses move_uploaded_file() ...

Y ten mucho cuidado con:

Código PHP:
$miImagen 
Que sea así y no $miimagen ... por ejemplo

En tu código te falta definir:
$path=""; .. q es donde vas a guardar tu imagen definitavamente .. y el otro código no indica el path ... (ahí no se donde lo dejará .. supongo q donde se llame al script.php .. )

En general .. cuando via PHP haces un UPLOAD .. el archivo que subes al servidor sube al directorio temporal que has especificado en tu php.ini .. y de ahí tienes q moverlo a su destino definitivo ..

Es recomendable que el upload_tmp_dir .. lo tengas FUERA de tu documment root .. osese, no donde pones tus paginas web en tu servidor .. sino FUERA de el .. Principalmente por motivos de seguridad ...

Un saludo,

Última edición por Cluster; 29/01/2003 a las 14:22
  #7 (permalink)  
Antiguo 29/01/2003, 14:29
 
Fecha de Ingreso: julio-2002
Mensajes: 219
Antigüedad: 15 años, 5 meses
Puntos: 0
Muchas Gracias Cluster.

Voy a usar el código de mveraa. Ahora lo que no se es donde guarda el archivo. Pero ya veré como lo resuelvo.

Muchas gracias a ti y a mveraa.
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 06:21.