Foros del Web » Programando para Internet » PHP »

Upload de imagen!!

Estas en el tema de Upload de imagen!! en el foro de PHP en Foros del Web. Hola! Tengo una inquietud desde hace ya mucho tiempo, se trata de un script en php para subir imágenes al servidor dentro de una carpeta ...
  #1 (permalink)  
Antiguo 22/11/2006, 16:24
Avatar de ChocoMan  
Fecha de Ingreso: diciembre-2004
Ubicación: Santa Fe Capital
Mensajes: 68
Antigüedad: 19 años, 4 meses
Puntos: 0
Exclamación Upload de imagen!!

Hola!
Tengo una inquietud desde hace ya mucho tiempo, se trata de un script en php para subir imágenes al servidor dentro de una carpeta denominada "photos/" y no encuentro problema alguno al código. Cuando lo ejecuto mediante el formulario en html me tira un error de que el archivo no tiene la extensión correcta cuando si lo es.

Para aclararles todo les doy ambas partes junto con el error al final:

HTML:

<form id="form_up" name="from_up" method="post" enctype="multipart/form-data" action="upload.php">
<table>
<tr>
<td style="font-family:Arial; font-weight:bold; color:#009900; font-size:9pt">Ubicaci&oacute;n:&nbsp;</td>
<td><input type="file" id="archivo" name="archivo" style="border: 1px #FF9900 solid; background-color:#EEEEEE; color:#009900; font-family:Arial; font-size:9pt"/></td>
<td><input type="submit" id="submit_button" name="submit_button" value="Subir!" style="border: 1px #FF9900 solid; background-color:#DDDDDD"/></td>
</tr>
</table>
</form>


Este es el script en PHP:

<?php

$extension = explode (".",$archivo_name);
$num = count ($extension)-1;

if ($extension [$num] == "jpg" || $extension [$num] == "jpeg" || $extension [$num] == "gif")
{
if ($archivo_size < 200000)
{
if (!copy $archivo, "photos/".$archivo_name)
{
echo "Error al copiar la imagen.";
}
else
{
echo "Imagen subida con Éxito!!";
}
}
else
{
echo "La imagen supera los 200Kb.";
}
}
else
{
echo "El formato de la imagen no es válido. Solo se admiten jpg o gif.";
}
?>


ERROR:

"El formato de la imagen no es válido. Solo se admiten jpg o gif."


Si alguien encuentra el error por favor les voy a estar muy agradecido si me lo comentan y me dan una solución directa a este problemita que tengo.
Desde ya, mil gracias por su interés!
  #2 (permalink)  
Antiguo 22/11/2006, 17:04
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo

Te sugiero que cheques este link http://www.forosdelweb.com/showthrea...389#post249389

Saludillos.
  #3 (permalink)  
Antiguo 24/11/2006, 10:39
 
Fecha de Ingreso: octubre-2006
Ubicación: Guadalajara, Mexico
Mensajes: 177
Antigüedad: 17 años, 6 meses
Puntos: 0
Una duda sobre tu tema

Como obtienes el tamaño del archivo ?

con filesize() ??

gracias
  #4 (permalink)  
Antiguo 24/11/2006, 12:06
 
Fecha de Ingreso: octubre-2006
Ubicación: Guadalajara, Mexico
Mensajes: 177
Antigüedad: 17 años, 6 meses
Puntos: 0
Que te parece esta version

<form action="subearchivo.php" method="post" enctype="multipart/form-data">
<b>Campo de tipo texto:</b>
<br>
<input type="text" name="cadenatexto" size="20" maxlength="100">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<br>
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar">
</form>


<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//datos del arhivo
$nombre_archivo = $HTTP_POST_FILES['userfile']['name'];
$tipo_archivo = $HTTP_POST_FILES['userfile']['type'];
$tamano_archivo = $HTTP_POST_FILES['userfile']['size'];
//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
echo "La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>


$HTTP_POST_FILES['userfile']['name']
El nombre original del fichero en la máquina cliente.

$HTTP_POST_FILES['userfile']['type']
El tipo mime del fichero (si el navegador lo proporciona). Un ejemplo podría ser "image/gif".

$HTTP_POST_FILES['userfile']['size']
El tamaño en bytes del fichero recibido.

$HTTP_POST_FILES['userfile']['tmp_name']
El nombre del fichero temporal que se utiliza para almacenar en el servidor el archivo recibido.
  #5 (permalink)  
Antiguo 26/11/2006, 09:14
Avatar de ChocoMan  
Fecha de Ingreso: diciembre-2004
Ubicación: Santa Fe Capital
Mensajes: 68
Antigüedad: 19 años, 4 meses
Puntos: 0
GRACIAS jtv1972!!!!!!!!!!!

Me funciona el script que me recomendaste, ahora lo modificaré para asimilar las mejoras al antigüo, la verdad es que desconocía la utilidad de la variable "$HTTP_POST_FILES"...
  #6 (permalink)  
Antiguo 05/02/2007, 12:48
Avatar de a83
a83
 
Fecha de Ingreso: noviembre-2005
Ubicación: Santiago de chile
Mensajes: 637
Antigüedad: 18 años, 5 meses
Puntos: 1
Re: Upload de imagen!!

me puedes esplicar esto me resulta pero como lo puedo hacer para guardar los datps en una base de datos y la fot en una carpeta
  #7 (permalink)  
Antiguo 05/02/2007, 12:51
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Upload de imagen!!

Pues puedes mirar de crear una tabla 'fotos' con un campo que sea la dirección de la foto dentro del servidor, por ejemplo 'archivos/fotos', y eso lo almacenas en tu campo. Entonces solo tendrias que hacer la consulta a este campo para obtener la dirección y con ella ya fácilmente acceder a la foto.

Saludos.
  #8 (permalink)  
Antiguo 05/02/2007, 13:15
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Upload de imagen!!

me da esto


Warning: move_uploaded_file(HPHMY.gif) [function.move-uploaded-file]: failed to open stream: Permission denied in /home/user/domains/midomain.com.ar/public_html/subearchivo.php on line 14

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpTezIf0' to 'HPHMY.gif' in /home/user/domains/midomain.com.ar/public_html/subearchivo.php on line 14
Ocurrió algún error al subir el fichero. No pudo guardarse.
  #9 (permalink)  
Antiguo 05/02/2007, 13:19
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Upload de imagen!!

Tiene permisos de escritura la carpeta?
  #10 (permalink)  
Antiguo 05/02/2007, 14:06
 
Fecha de Ingreso: mayo-2004
Mensajes: 903
Antigüedad: 20 años
Puntos: 4
Re: Upload de imagen!!

pequeño detalle s4e me habia pasado ahora va perfecto gracias
  #11 (permalink)  
Antiguo 05/02/2007, 14:22
Avatar de AbdelioR  
Fecha de Ingreso: septiembre-2006
Ubicación: Tarragona
Mensajes: 926
Antigüedad: 17 años, 7 meses
Puntos: 8
Re: Upload de imagen!!

Me alegro.

Saludos.
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 13:50.