Foros del Web » Programando para Internet » PHP »

Como hago un uploader de imagenes?

Estas en el tema de Como hago un uploader de imagenes? en el foro de PHP en Foros del Web. Buenas soy nuevo aqui, mi problema nace en que ya no se que hacer, eh visto muchas ayudas por aqui pero ninguna me ah servido, ...
  #1 (permalink)  
Antiguo 04/07/2010, 20:16
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Como hago un uploader de imagenes?

Buenas soy nuevo aqui, mi problema nace en que ya no se que hacer, eh visto muchas ayudas por aqui pero ninguna me ah servido, quiero hacer un uploader de imagenes, pero como? a veces me da error de que no se pudo copiar y todo eso :/

Aqui es donde esta los archivos:

xxxxx/foro/images/post/up.html

(Donde xxxxx es la dirección de la pagina)

el archivo up.html contiene lo siguiente:

Código HTML:
<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> 
y el archivo subearchivo.php

Código PHP:
<? 
//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']['/temp'], $nombre_archivo)){ 
           echo 
"El archivo ha sido cargado correctamente."
       }else{ 
           echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
       } 

?>
aclaro todo esta en el mismo directorio (El up.html y el subearchivo.php esta en la misma carpeta donde quiero que se guarde), a su ves esto esta en xxxx/foro/images/post/ y dentro hay una carpeta que denomine "temp" y otra "prueba" ambas con permisos 777 al igual que el directorio post.. Me da el error:

"Escribió en el campo de texto: frgdfg

Ocurrió algún error al subir el fichero. No pudo guardarse."


alguna idea el por que no me da? y por favor no me manden a otro post por que seguiré sin entender. Un montón de gracias al que me ayude.
  #2 (permalink)  
Antiguo 04/07/2010, 20:34
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Como hago un uploader de imagenes?

Pruebalo asi..

Código PHP:
<? 
//comprovamos si fue pulsado el boton submit
if(isset($_POST['Enviar']))
{
  
//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 $_FILES['userfile']['name']; 
$tipo_archivo $_FILES['userfile']['type']; 
$tamano_archivo $_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($_FILES['userfile']['temp'], $nombre_archivo)){ 
           echo 
"El archivo ha sido cargado correctamente."
       }else{ 
           echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
       } 

}

?>
__________________
Desarrollador .Net y Php
MCTS Framework 2.0:Windows Applications
Microsoft Certificated Profesional
  #3 (permalink)  
Antiguo 04/07/2010, 20:41
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

dfsdf Nombres

Warning: move_uploaded_file(/home/usonokia/domains/usonokia.com.ve/public_html/foro/images/post/foro/images/post/prueba/1.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/usonokia/domains/usonokia.com.ve/public_html/foro/images/post/upload2.php on line 18

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpTeNaJI' to '/home/usonokia/domains/usonokia.com.ve/public_html/foro/images/post/foro/images/post/prueba/1.jpg' in /home/usonokia/domains/usonokia.com.ve/public_html/foro/images/post/upload2.php on line 18
Ocurrió algún error al subir el fichero. No pudo guardarse.

Me da ese error ahora :(
  #4 (permalink)  
Antiguo 04/07/2010, 20:49
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Como hago un uploader de imagenes?

mira cambia $_FILES['userfile']['temp'] ... por $_FILES['userfile']['tmp_name']...
__________________
Desarrollador .Net y Php
MCTS Framework 2.0:Windows Applications
Microsoft Certificated Profesional
  #5 (permalink)  
Antiguo 04/07/2010, 20:53
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Sigue el mismo error..
  #6 (permalink)  
Antiguo 04/07/2010, 20:55
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Como hago un uploader de imagenes?

ya se que te falta poner... te falta la url de tu carpeta

move_uploaded_file($_FILES['userfile']['temp'], $nombre_archivo)

donde $nomrbe_archivo debe de ser tu direccion de la carpeta donde se guardara la imagen y tu pones el nombre.. por eso el error
__________________
Desarrollador .Net y Php
MCTS Framework 2.0:Windows Applications
Microsoft Certificated Profesional
  #7 (permalink)  
Antiguo 04/07/2010, 20:58
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Y como lo pondria? por que en la misma carpeta que estan los archivos quiero que se guarden.. seria move_uploaded_file($_FILES['userfile']['temp'], '/') o como? y disculpa la molestia
  #8 (permalink)  
Antiguo 04/07/2010, 21:00
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Como hago un uploader de imagenes?

pues prueba asi.. o usa la ruta relativa $dir="/home/...." a ver como te va...
__________________
Desarrollador .Net y Php
MCTS Framework 2.0:Windows Applications
Microsoft Certificated Profesional
  #9 (permalink)  
Antiguo 04/07/2010, 21:10
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

if (move_uploaded_file($_FILES['userfile']['temp'], $dir='/home/usonokia/domains/usonokia.com.ve/foro/images/post/')) no da,
if (move_uploaded_file($_FILES['userfile']['temp'], $dir='/')) tampoco
if (move_uploaded_file($_FILES['userfile']['temp'], $dir='/post/')) menos
:/
  #10 (permalink)  
Antiguo 04/07/2010, 21:15
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Como hago un uploader de imagenes?

pero no uses el temp.. pon tmp_name
__________________
Desarrollador .Net y Php
MCTS Framework 2.0:Windows Applications
Microsoft Certificated Profesional
  #11 (permalink)  
Antiguo 04/07/2010, 21:20
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Sigue sin servir... Y de verdad que no entiendo el por que :/
  #12 (permalink)  
Antiguo 05/07/2010, 02:09
Avatar de 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?

Buenas una pregunta, ¿esto para que es?, es que no se que es lo que tiene que hacer.
Código PHP:
//tomo el valor de un elemento de tipo texto del formulario  
$cadenatexto $_POST["cadenatexto"];  
echo 
"Escribió en el campo de texto: " $cadenatexto "<br><br>"
Este sube la foto a la carpeta "uploads" que tengo en el mismo raiz de mi directorio, junto con el form.html y el upload.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 =  "uploads/".$archivo;
        if (
copy($_FILES['userfile']['tmp_name'],$destino)) {
            
$status "Archivo subido: <b>".$archivo."</b>";
        } else {
            
$status "Error al subir el archivo";
        }
    } else {
        
$status "Error al subir archivo";
    }
}
?>
<?php 
echo $status?>
  #13 (permalink)  
Antiguo 05/07/2010, 02:12
Avatar de Chenon  
Fecha de Ingreso: abril-2005
Ubicación: Palma de Mallorca
Mensajes: 99
Antigüedad: 19 años, 7 meses
Puntos: 11
De acuerdo Respuesta: Como hago un uploader de imagenes?

Hola, y no será porque no has puesto bien el "$HTTP_POST_FILES['userfile']['tmp_name']"?

Es decir, en lugar de:
Código PHP:
Ver original
  1. if (move_uploaded_file($HTTP_POST_FILES['userfile']['/temp'], $nombre_archivo)){

así...
Código PHP:
Ver original
  1. if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){

Es que el array de los FILES no contiene nada similar a un "/temp" que yo sepa. Por lo que eso siempre estará vacío.
Asegúrate de hacer un print_r($_FILES), y verás si existe ese segmento de array.

Un saludo.
  #14 (permalink)  
Antiguo 05/07/2010, 09:07
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

@kalebra Despues de subir la imagen, se me va a blanco y no hace mas nada, la parte del texto no me importa mucho, mientras suba la imagen esta todo bien.

@Chenon como haria el print_r($_FILES) ? Soy muy nuevo en esto. Gracias
  #15 (permalink)  
Antiguo 05/07/2010, 11:56
Avatar de 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?

Buenas que tal, solo tendrias que poner un header para que redireccione a la pagina que quieras.

Dentro de los siguientes renglones del codigo del post anterior.
Código PHP:
// guardamos el archivo a la carpeta files 
        
$destino =  "uploads/".$archivo
        if (
copy($_FILES['userfile']['tmp_name'],$destino)) { 
            
$status "Archivo subido: <b>".$archivo."</b>";
header('Location: ./prueba.php'); // -------------------------- Codigo que redirecciona a la pagina que quieras, debes darle la ruta, en este caso esta en el raiz de mi sitio por eso solo lleva ./prueba.php.
        
} else { 
            
$status "Error al subir el archivo"
Espero que te sirva, ya que con algunos servidores me ha dado problemas, pero lo he solucionado en vez de hacer la redireccion automatica, he metido un link para volver a la pagina anterior.

Saludos
  #16 (permalink)  
Antiguo 05/07/2010, 13:20
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Aqui esta el codigo:

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 =  "uploads/".$archivo;  
        if (
copy($_FILES['userfile']['tmp_name'],$destino)) {  
            
$status "Archivo subido: <b>".$archivo."</b>"
header('Location: ./foro/images/post/subearchivo.php'); // -------------------------- Codigo que redirecciona a la pagina que quieras, debes darle la ruta, en este caso esta en el raiz de mi sitio por eso solo lleva ./prueba.php. 
        
} else {  
            
$status "Error al subir el archivo";  
    } 

?>

<?php echo $status?>
Y me da este error:

Parse error: syntax error, unexpected $end in /home/usonokia/domains/usonokia.com.ve/public_html/foro/images/post/subearchivo.php on line 21
  #17 (permalink)  
Antiguo 05/07/2010, 13:39
Avatar de 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?

Buenas, tienes que cambiar tambien la carpeta donde se alojan las imagenes
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// Ruta de la carpeta donde se alojan las imagenes.  
        
if (copy($_FILES['userfile']['tmp_name'],$destino)) {   
            
$status "Archivo subido: <b>".$archivo."</b>";  
header('Location: ./foro/images/post/subearchivo.php'); // -------------------------- Codigo que redirecciona a la pagina que quieras, debes darle la ruta, en este caso esta en el raiz de mi sitio por eso solo lleva ./prueba.php.  
        
} else {   
            
$status "Error al subir el archivo";   
    }  
}  
?> 
<?php echo $status?>
En esta linea, ya esta cambiada en el codigo superior.
Código PHP:
 $destino =  "uploads/".$archivo
Si te sigue dando error, podrias probar con un link que volviera a la pagina del formulario HTML o 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// Ruta de la carpeta donde se alojan las imagenes.  
        
if (copy($_FILES['userfile']['tmp_name'],$destino)) {   
            
$status "Archivo subido: <b>".$archivo."</b><br/><a href='./foro/images/post/subearchivo.php'>Subir nueva imagen</a>";  
        } else {   
            
$status "Error al subir el archivo";   
    }  
}  
?> 
<?php echo $status?>
Tambien lo que veo es que le das la ruta de "subearchivo.php" deberia de ser la ruta del formulario y no la del archivo que se encarga de las subidas.
  #18 (permalink)  
Antiguo 05/07/2010, 13:49
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Me sigue dando el mismo error :(
  #19 (permalink)  
Antiguo 05/07/2010, 13:53
Avatar de 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?

Con el otro codigo con el link para volver a la pagina del formulario ¿tambien te da error?
Que raro, yo lo he probado en local y en remoto y me funciona, me puedes poner el codigo del formulario para mirarlo por si el fallo estuviera ahi.

Saludos

P.D. Otra cosa crea un archivo PHP con esto, y llamalo por ejemplo path.php
Código PHP:
<?php
  $path 
getcwd();
  echo 
$path;
?>
Guardalo en la carpeta donde se guardan las fotos y ejecutalo en el navegador.

Ejemplo: http://www.misitio.com/foro/images/post/path.php

Luego mira la ruta o pegala aqui para ver si la ruta que pones esta mal.

Última edición por kalebra; 05/07/2010 a las 14:00
  #20 (permalink)  
Antiguo 05/07/2010, 13:57
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Si. le agregue /foro/images/post/up.html que es como se llama, y aqui esta ol codigo:

Código HTML:
head>
<html>
<link rel="shortcut icon" href="http://usonokia.com.ve/foro/favicon.ico">
<title>Subir Imagenes</title>
</head>
<body>
<center>
<body background="fondo.jpg"> 

<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<form action="subearchivo.php" method="post" enctype="multipart/form-data"> 
   	 
   	 <input type="hidden" name="MAX_FILE_SIZE" value="1000000"> 
   	 <br> 
   	 <br> 
   	 <b>Enviar un nuevo archivo: </b> 
   	 <br> 
   	 <input name="userfile" type="file"> 
   	 <br> 
   	 <input type="submit" value="Enviar"> 

</form>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>
</br>


</center>

</body>
</html> 
  #21 (permalink)  
Antiguo 05/07/2010, 14:46
Avatar de 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?

Bueno vamos a ver, que ya me estaba volviendo loco y no veia el error, bueno vamos a ver si ahora lo podemos solucionar.

Archivo 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?>
Archivo 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> 
Y con esto deberia de funcionarte, recuerda quitar o poner mas "../" dependiendo de la profundidad de la carpeta, respecto al raiz del sitio web.

Saludos
  #22 (permalink)  
Antiguo 05/07/2010, 15:22
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Te cuento, eh cambiado lo que me as dicho y nada, solo me manda a pagina en blanco ):
  #23 (permalink)  
Antiguo 05/07/2010, 15:45
Avatar de 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
  #24 (permalink)  
Antiguo 05/07/2010, 20:47
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Modificar el Uploader para que solo acepte imagenes

Primero que todo muchas gracias por el post del "http://www.forosdelweb.com/f18/como-hago-uploader-imagenes-822095/Uploader de imagenes, ahora lo que quisiera es saber como hacer que ese uploader solo permita subir jpg, png y gif ? queda otra duda sobre el uploader, pero sera despues que me ayuden a resolver esta.

Codigo de 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> 
Y el codigo de 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?>
Gracias una ves mas.
  #25 (permalink)  
Antiguo 05/07/2010, 22:21
Avatar de TheoriaX  
Fecha de Ingreso: agosto-2009
Ubicación: Hermosillo, Sonora
Mensajes: 217
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: Modificar el Uploader para que solo acepte imagenes

usa tu varible $tipo y con if vas comparando con los diferentes extensiones
__________________
Desarrollador .Net y Php
MCTS Framework 2.0:Windows Applications
Microsoft Certificated Profesional
  #26 (permalink)  
Antiguo 05/07/2010, 22:48
Avatar de Enmiguel  
Fecha de Ingreso: julio-2010
Mensajes: 26
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Modificar el Uploader para que solo acepte imagenes

Como se haria?, realmente soy muy nuevo con php :/
  #27 (permalink)  
Antiguo 06/07/2010, 00:52
 
Fecha de Ingreso: agosto-2008
Mensajes: 48
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Como hago un uploader de imagenes?

Creo que estoy cometiendo un error en las rutas ya que no me saca errores de codigo pero me Sale "Error al subir el archivo"

estoy usando el codigo

Código PHP:
Ver original
  1. <?php    
  2. error_reporting(E_ALL & ~E_NOTICE);  
  3. $status = "";  
  4. if ($_POST["action"] == "upload") {  
  5. // obtenemos los datos del archivo    
  6.     $tamano = $_FILES['userfile']['size'];  
  7.     $tipo = $_FILES['userfile']['type'];  
  8.     $archivo = $_FILES['userfile']['name'];  
  9.        
  10.     if ($archivo != "") {  
  11. // guardamos el archivo a la carpeta files  
  12.         $destino =  "./".$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.  
  13.         if (copy($_FILES['userfile']['tmp_name'],$destino)) {  
  14.             $status = "Archivo subido: <b>".$archivo."</b>";  
  15.         header('Location: ./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.  
  16.         } else {  
  17.             $status = "Error al subir el archivo";  
  18.         }  
  19.     } else {  
  20.         $status = "Error al subir archivo";  
  21.     }  
  22. }  
  23. ?>  
  24. <?php echo $status; ?>


La ruta donde subo las imagenes en mi servidor es /httpdocs

ya que en esa carpeta en la configuracion de mi hosting es donde se ponen los archivos que se van a publicar en la pagina en la raiz / tengo otras carpetas de dominio no se como poner la ruta o que estare haciendo mal =S dejo la direccion para que vean


Ojala me puedan ayudar y gracias !

Última edición por cerd0; 05/12/2010 a las 21:00

Etiquetas: imagenes, uploader
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 16:21.