Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: schumacher en 22 Octubre 2008, 01:38 am



Título: Subir Archivos (grandes) por php
Publicado por: schumacher en 22 Octubre 2008, 01:38 am
...buenas
...de este tema eh encontrado bastante codigo y estuve estudiandolo un buen rato
...pero ni uno me ha resultado hasta ahora

...uno de los problemas puede ser el hosting, la verdad a un no lo se, lo estoy haciendo aca "000webhost"
...pero no se que estoy haciendo mal porque aun no lo entiendo del todo
...me podrian ayudar con un ejemplo? de como subir un archivo mediante php
...yo me las arreglo con eso despues

saludos!

PD: por ejemplo es ese hosting donde dice permisos, en la carpeta donde quiero subir lsoarchivos dice esto "drwxr-xr-x" no se que significa >.<

PD2: me sale este error con algunos de los codigos

Código:
Warning: move_uploaded_file(home/a9890303/public_html/uploads/id.txt) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/a9890303/public_html/upload.php on line 5

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpLENmGM' to 'home/a9890303/public_html/uploads/id.txt' in /home/a9890303/public_html/upload.php on line 5

...lo que entiendo es que no lo puede mover? es por los permisos?


SOLUCION:
...si por los permisos
Citar
//Important: Make sure this folders permissions (CHMOD) is 0777!

si no sirve el post lo borran ^^

saludos!

*****************************
sucedio otro problema no puedo subir archivos como de 4MB... para eso q tengo que hacer?

 
 


Título: Re: Subir Archivos por php
Publicado por: #!drvy en 22 Octubre 2008, 15:29 pm
Podrías publicar el code y así nos facilitas la adivinación xD


Título: Re: Subir Archivos por php
Publicado por: schumacher en 22 Octubre 2008, 15:56 pm
ok^^ jejeje

formulario.html
Código:
<html>
<head>
<title>PHP File Upload Example</title>
</head>
<body>
<form enctype="multipart/form-data" method="post" action="upload.php">
<input type="file" name="fileToUpload" /><br />
<input type="submit" value="Upload File" />
</form>
</body>
</html>

upload.php
Código:
<?php
echo "<table border=\"1\">";
echo "<tr><td>Client Filename: </td>
   <td>" . $_FILES["fileToUpload"]["name"] . "</td></tr>";
echo "<tr><td>File Type: </td>
   <td>" . $_FILES["fileToUpload"]["type"] . "</td></tr>";
echo "<tr><td>File Size: </td>
   <td>" . ($_FILES["fileToUpload"]["size"] / 1024) . " Kb</td></tr>";
echo "<tr><td>Name of Temporary File: </td>
   <td>" . $_FILES["fileToUpload"]["tmp_name"] . "</td></tr>";
echo "</table>";
move_uploaded_file($_FILES["fileToUpload"]["tmp_name"],
  "/home/a9890303/public_html/uploads/" . $_FILES["fileToUpload"]["name"]);
?>

...estuve leyendo y al parece esto sol funciona con archivos de menos de 2MB
...ahora estoy buscando uno q soporte mas y si no es mucho pedir tambien un progressbar del upload, que tambien lo estoy buscando
...por lo que se lo del progressbar se hace con ajax o algo similar
...en todo caso cual es el mas simple para poder aprender ^^

saludos!

PD: fui yo!  :-X jijiji
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje


quien fue quien fue grrrrr >:D


Título: Re: Subir Archivos por php
Publicado por: carolmuriel en 22 Octubre 2008, 15:58 pm
tiene permiso de escritura la carpeta donde alojaras esos archivos?, ya descartaste q no fue tu code y ya lo probaste en otro servidor te corrio bien en apache?

hay papa el peo es pa subir el form?

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje


quien fue quien fue grrrrr >:D


Título: Re: Subir Archivos por php
Publicado por: schumacher en 22 Octubre 2008, 16:04 pm
...si ese code funciona ya lo eh probado con un archivo de texto de menos de 10kb
...pero el problema es cuando quiero subir archivos mas grandes (alrededor de 2MB)
...me dice "Problema al cargar la pagina" (firefox)

Código:
La conexión ha sido reiniciada
La conexión al servidor fue reiniciada mientras la página se cargaba.
    *   El sitio podría estar no disponible temporalmente o
         demasiado ocupado. Vuelva a intentarlo en unos momentos.
    *   Si no puede cargar ninguna página, compruebe la conexión
         de red de su ordenador.
    *   Si su ordenador o red están protegidos por un cortafuegos
         o proxy, asegúrese de que Firefox tiene permiso para
         acceder a la web.

...por ahi lei que tenia que hacer algo con el "php.ini" pero donde lo pongo o como hago aun no entendi eso jeje, acaso tendria que tener mi propio servidor para poder configurarlo? <.<


Título: Re: Subir Archivos por php
Publicado por: #!drvy en 22 Octubre 2008, 17:10 pm
has copiado el de w3schools ?
un ejemplo seria asi:

Código
  1. ?php
  2.  
  3. if ((($_FILES["file"]["type"] == "image/gif")
  4. || ($_FILES["file"]["type"] == "image/jpeg")
  5. || ($_FILES["file"]["type"] == "image/pjpeg"))
  6. && ($_FILES["file"]["size"] < 20000))  // bytes de archivo maximo 20 kb si el pones un 0 mas seran 2 mb
  7.  {
  8.  if ($_FILES["file"]["error"] > 0)
  9.    {
  10.    echo "Error: " . $_FILES["file"]["error"] . "<br />";
  11.    }
  12.  else
  13.    {
  14.    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
  15.    echo "Type: " . $_FILES["file"]["type"] . "<br />";
  16.    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
  17.    echo "Stored in: " . $_FILES["file"]["tmp_name"];
  18.    }
  19.  }
  20. else
  21.  {
  22.  echo "Invalid file";
  23.  }
  24.  
  25. ?>
  26.  


Saludos


Título: Re: Subir Archivos por php
Publicado por: schumacher en 22 Octubre 2008, 18:40 pm
...pues si, ya lo habia probado, incluso ahi falta una partecita que es para mover el archivo de la carpeta temporal >.<
...yo recien estoy empezando asi que seguire buscando^^

...y alguna ayuda no me caeria mal! ::)

saludos


Título: Re: Subir Archivos (grandes) por php
Publicado por: #!drvy en 22 Octubre 2008, 23:34 pm
bueno como mañana no trabajo xD.......
Código
  1. <center>
  2. <div>
  3. <?php
  4. // Bsm
  5.  
  6. $carpeta = "subidas/"; // no te olvides el / al final
  7. $tamano = "50000"; // en "bytes" 50000 bytes = 5 megabytes
  8.  
  9. if (empty($_FILES)) {} else {
  10. // tamaño maximo
  11.  if (($_FILES["file"]["size"] < $tamano))
  12.     // caso de algun error
  13.    {if ($_FILES["file"]["error"] > 0) {echo "ERROR n: " . $_FILES["file"]["error"] . "<br />";}
  14.      else{
  15.      echo "Archivo: " . $_FILES["file"]["name"] . "<br />";
  16.      echo "Tipo: " . $_FILES["file"]["type"] . "<br />";
  17.  
  18.           //prevenir repeticion
  19.        $rand = rand(100,999999);
  20.    $_FILES["file"]["name"] = $rand.$_FILES["file"]["name"];
  21.  
  22.    // mover archivos
  23.        move_uploaded_file($_FILES["file"]["tmp_name"],
  24.        $carpeta . $_FILES["file"]["name"]);
  25.        echo "Guardado en: " . $carpeta . $_FILES["file"]["name"];}
  26.  
  27.  } else {echo "tamaño superado";}
  28. }
  29. //bsm
  30. ?>
  31. </div>
  32. <br>
  33. <div>
  34. <form action="" method="post" enctype="multipart/form-data">
  35. <input type="file" name="file" id="file" />
  36. <input type="submit" value="Enviar" />
  37. </form>
  38. </div>
  39. </center>
  40.  

De todos modos te recomiendo algún filtro ya que podría ver problemas de seguridad.

Recuerda dar permisos :P


Saludos


Título: Re: Subir Archivos (grandes) por php
Publicado por: Hans el Topo en 23 Octubre 2008, 21:39 pm
tal vez te sirva http://blog-indomita.blogspot.com/2008/07/subir-archivos-de-mas-de-2-megas-en-php.html