Ver Mensaje Individual
  #23 (permalink)  
Antiguo 05/07/2010, 15:45
Avatar de kalebra
kalebra
 
Fecha de Ingreso: mayo-2010
Ubicación: Marbella
Mensajes: 44
Antigüedad: 14 años, 6 meses
Puntos: 5
Respuesta: Como hago un uploader de imagenes?

Acabo de probar a crear las carpetas en mi server remoto.

Ejemplo donde alojo las imagenes y el archivo up.html y subearchivo.php:

Direccion:
http://www.misitio.com/foro/images/post/
http://www.misitio.com/foro/images/post/up.html
http://www.misitio.com/foro/images/post/subearchivo.php

Todo esto es lo que he creado para probar en remoto, y funciona con los codigos que he puesto anteriormente, tal y como los he posteado, no tendrias que cambiar nada si efectivamente la ruta de las carpetas es como la mia.

Codigo pagina y script upload, no hace falta retocar nada.

up.html
Código HTML:
<html>
<head>
<link rel="shortcut icon" href="http://usonokia.com.ve/foro/favicon.ico">
<title>Subir Imagenes</title>
</head>
<body>
<body background="fondo.jpg"> 
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<br/>
<table align="center" width="250"><div align="center">
<form action="./subearchivo.php" method="post" enctype="multipart/form-data"> 
 <tr><td width="250"><div align="left">
  <b>Enviar un nuevo archivo: </b>
 <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
  </div>
  </td></tr>
  <tr><td>
 <input name="userfile" type="file">
  </td></tr>
  <tr><td>
 <input name="enviar" type="submit" id="enviar" value="Enviar" /> 
 <input name="action" type="hidden" value="upload" /> <!-- ------- Aqui faltaba esta linea, todo lo demas estaba bien -->
  </td></tr>
</form>
</div></table>
</body>
</html> 
subearchivo.php
Código PHP:
<?php   
error_reporting
(E_ALL & ~E_NOTICE);  
$status "";  
if (
$_POST["action"] == "upload") {  
// obtenemos los datos del archivo   
    
$tamano $_FILES['userfile']['size'];  
    
$tipo $_FILES['userfile']['type'];  
    
$archivo $_FILES['userfile']['name'];  
      
    if (
$archivo != "") {  
// guardamos el archivo a la carpeta files  
        
$destino =  "./../../../foro/images/post/".$archivo// Aqui los "./../../" indican la profundidad de la carpeta, deberas de quitar o poner dependiendo de cuantas carpetas haya hasta llegar al raiz de la web. 
        
if (copy($_FILES['userfile']['tmp_name'],$destino)) {  
            
$status "Archivo subido: <b>".$archivo."</b>"
        
header('Location: ./../../../foro/images/post/up.html'); // Aqui los "./../../" indican la profundidad de la carpeta, deberas de quitar o poner dependiendo de cuantas carpetas haya hasta llegar al raiz de la web. 
        
} else {  
            
$status "Error al subir el archivo";  
        }  
    } else {  
        
$status "Error al subir archivo";  
    }  
}  
?>  
<?php echo $status?>
No se, o estas omitiendo alguna carpeta o no entiendo porque no funciona, ya que he probado en local y remoto y va perfecto.
Mi web la tengo alojada en 1&1 y son bastantes restrictivos con permisos y demas, pero con esto no hay problema.

Ya me cuentas, saludos