elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Sistema para subir imagenes a un Servidor usando PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sistema para subir imagenes a un Servidor usando PHP  (Leído 5,036 veces)
DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Sistema para subir imagenes a un Servidor usando PHP
« en: 29 Mayo 2008, 07:40 am »

Primero, voy a suponer que saben diseñar, entonces más o menos podrian tener su página conformada. Yo les voy a explicar la siguiente estructura

upload.html[tiene el formulario para especificar el fichero a subir]
upload.php [contiene el script para subir la imagen, luego de procesada la imagen, va a mostrar una vista en miniatura de la imagen, y los vinculos: directo y foro]
imagenes.php [sirve para ver las imagenes subidas al servidor, utiliza el fichero maxFileBrowser.class.php]
maxFileBrowser.class.php [contiene el script que permite ver las imagenes subidas, muestra una vista en minatura de la imagen y los vinculos: directo y foro, este script no fue creado por mi, disculpenme no recuerdo de que página lo descarge]

upload.html
Código
  1. <form method="post" action="upload.php" enctype="multipart/form-data">
  2.                  <p>
  3.                    <input name="userfile[]" type="file" >
  4.                    <br>
  5.                    <br>
  6.  
  7.                    <input type="submit" value="Subir!!!" >
  8.                  </p>
  9.              </form>

Expliación: Este es el formulario que utiliza el metodo POST* para enviar la imagen al fichero upload.php para que este la suba al servidor.



upload.php
Código
  1. <?php
  2.   for($i=0;$i<sizeof($userfile);$i++)
  3.   {
  4.     if(!$userfile_size[$i])
  5.         continue;
  6.  
  7.     $UPLOAD = fopen( $userfile[$i], "r" );
  8.     $contents = fread( $UPLOAD,$userfile_size[$i]);      
  9.     fclose( $UPLOAD );  
  10.     $SAVEFILE = fopen("upload//".$userfile_name[$i], "wb" );
  11.     fwrite( $SAVEFILE, $contents,$userfile_size[$i] );
  12. echo "UploadImage ha recibido la Imágen <b>$userfile_name[$i]</b>";  
  13. echo "<br>";
  14. echo "<table width='200' border='1'>
  15.  <tr>
  16.    <td colspan='2'>Vinculos</td>
  17.  </tr>
  18.  <tr>
  19.    <td><b>Directo:</b></td>
  20.    <td><a target='_blank' href='http://192.168.1.2/imageupload/upload/$userfile_name[$i]'>http://192.168.1.2/imageupload/upload/$userfile_name[$i]</a></td>
  21.  </tr>
  22.  <tr>
  23.    <td><b>Foro:</b></td>
  24.    <td><font color='#FF0000'>[img]http://192.168.1.2/imageupload/upload/$userfile_name[$i][/img]</font></td>
  25.  </tr>
  26. </table>";  
  27.     fclose( $SAVEFILE );      
  28.  }    
  29.  
  30.  
  31. ?>

Expliación: Este Script sube el fichero al servidor a una carpeta llamada upload, que vamos a crear nosotros dentro de la carpeta de nuestro sitio. Luego te muestra los vinculos directo y foro para referirnos a nuestra imagen.



imagenes.php
Código
  1. <?php
  2.    require_once("maxFileBrowser.class.php");
  3.    $fileBrowser = new maxFileBrowser();
  4.    $fileBrowser->displayDir(getcwd());
  5. ?>

Expliación: Hace llamada a las funciones del fichero maxFileBrowser.class.php, para ejecutarlas en esta página. Este código lo insertamos donde queremos mostrar las imagenes. En si lo que hace es mostrar el contenido de una carpeta, en este caso la carpeta upload



maxFileBrowser.class.php
Código
  1. <?php
  2. class maxFileBrowser {
  3.   var $fileList;
  4.   var $dirList;  
  5.   var $dateFormat = 'd-m-Y H:i:s';
  6.  
  7. function displayDir($path='.'){
  8.   $path = 'upload//';    
  9.   $this->showDirSelector($path);
  10.   $dn=dirname($path);
  11.   $sp = strrpos($dn,DIRECTORY_SEPARATOR);
  12.   $up = substr($path, 0, $sp);  
  13.   if ($handle = @opendir($path))
  14.   {
  15.       echo "<table class='fileList'>";
  16.       echo "<tr><th width='25'></th><th>Nombre         </th>
  17. <th width='100'>Tama&ntilde;o</th>
  18. <th width='300'>Fecha que se subio</th>
  19.     </tr>";
  20.       echo "<tr><td></td><td colspan='4'></td></tr>";
  21.  
  22.       while (false !== ($file = readdir($handle)))
  23.       {
  24.           if ($file != "." && $file != "..")
  25.           {
  26.               $fName = $file;
  27.               $file = $path.DIRECTORY_SEPARATOR.$file;
  28.               if(is_file($file)) {
  29.                  $this->fileList[] = $file;
  30.               } elseif (is_dir($file)) {
  31.                   $this->dirList[] = $file;
  32.               }
  33.           }
  34.       }
  35.  
  36.       $i = 0;
  37.       if (sizeof($this->dirList) > 0){
  38.          sort($this->dirList);  
  39.          foreach ($this->dirList as $dir) {
  40.              $size = filesize($dir);
  41.              $perm = substr(sprintf('%o', fileperms($dir)), -4);
  42.              if (function_exists('mime_content_type'))
  43.                  $type = mime_content_type($dir);
  44.              else
  45.                  $type = filetype($dir);      
  46.              $date = date ($this->dateFormat, filemtime($dir));;
  47.              $name = basename($dir);
  48.              if ($i++%2) echo "<tr>";
  49.              else echo "<tr class='tr2'>";
  50.              echo "<td><img src='style/images/file.gif' alt='File' /></td><td class='fname'><img src='http://192.168.1.2/imageupload/upload/$name' width='100' height='100' alt='NO IMAGEN' /><a href='http://192.168.1.2/imageupload/upload/$name' target='_blank'>$name</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>".$size." Bytes</a></td><td>$date</td>
  51.  <tr colspan='4'><td colspan='4'><b>Foro: </b><br><font color='blue'>[img]http://192.168.1.2/imageupload/upload/".$name."[/img]<br><b></font>Directo: <font color='blue'><br></b>http://192.168.1.2/imageupload/upload/".$name."</font><br><br><a href='#top'><img src='go_up.gif'><br><br></td></tr></tr></tr";
  52.          }
  53.       }
  54.  
  55.       if (sizeof($this->fileList) > 0){
  56.          sort($this->fileList);  
  57.          foreach ($this->fileList as $file) {
  58.              $size = number_format(filesize($file), 0, ' ', ' ');
  59.              $perm = substr(sprintf('%o', fileperms($file)), -4);
  60.              if (function_exists('mime_content_type'))
  61.                  $type = mime_content_type($file);
  62.              else
  63.                  $type = filetype($file);      
  64.              $date = date ($this->dateFormat, filemtime($file));
  65.              $name = basename($file);
  66.  
  67.              if ($i++%2) echo "<tr>";
  68.              else echo "<tr class='tr2'>";
  69.              echo "<td><img src='style/images/file.gif' alt='File' /></td><td class='fname'><img src='http://192.168.1.2/imageupload/upload/$name' width='100' height='100' alt='NO IMAGEN' /><a href='http://192.168.1.2/imageupload/upload/$name' target='_blank'>$name</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td><td>".$size." Bytes</a></td><td>$date</td>
  70.  <tr colspan='4'><td colspan='4'><b>Foro: </b><br><font color='blue'>[img]http://192.168.1.2/imageupload/upload/".$name."[/img]<br><b></font>Directo: <font color='blue'><br></b>http://192.168.1.2/imageupload/upload/".$name."</font><br><br><a href='#top'><img src='go_up.gif'><br><br></td></tr></tr></tr>";
  71.          }
  72.       }
  73.  
  74.       closedir($handle);
  75.       echo "</table>";
  76.   }
  77.  
  78. }
  79.  
  80. function showDirSelector($actpath='.'){
  81. ?>    
  82. <?php
  83. }
  84.  
  85. function getActualPath(){
  86.    if (isset($_POST['submitBtn'])){
  87.        $dir = isset($_POST['path']) ? trim($_POST['path']) : getcwd();
  88.    } else if (isset($_GET['path'])) {
  89.        $dir = isset($_GET['path']) ? trim($_GET['path']) : getcwd();
  90.    } else {
  91.        $dir = getcwd();
  92.    }
  93.  
  94.    if (!file_exists($dir)) $dir = getcwd();
  95.  
  96.    return $dir;
  97. }
  98. }
  99. ?>

Expliación: Comprueba los ficheros de una carpeta en este caso upload, y los va a mostrar en la página a la que se le hizo referencia a este Script, en este caso imagenes.php, las muestra como una lista con la vista en miniatura, el nombre, la fecha que se subio, el tamaño, y los vinculos directo y foro

TÉRMINOS
Metodos GET Y POST:
En HTML, se pueden especificar dos métodos de envíos de formularios. Los mismos son establecidos a través de la propiedad METHOD que es un atributo de los formularios HTML.

POST: Cuando se envía un formulario a un script PHP, las variables de dicho formulario pasan a estar automáticamente disponibles en el script gracias a PHP. Estas variables tienen el nombre del campo del formulario, o sea si el campo de entrada de texto se llama nombre, la variable sera $nombre.

GET: Usando un formulario GET es similar excepto en el uso de variables predefinidas, que en este caso serán del tipo GET. GET también se usa con QUERY_STRING (la información despues del símbolo '?' en una URL). Por ejemplo http://www.example.com/test.php?id=3 contiene datos GET que son accesibles con $_GET['id'].

NOTA:
http://192.168.1.2/imageupload/upload/:
En todos donde aprezca esta ruta...debe ser cambiada por la ruta de la carpeta donde estan tus páginas. O sea 192.168.1.2 seria tu IP, imageupload: la carpeta de las páginas, y upload: la carpeta para subir las imagenes.

Espero este tuto les ayude en algo....

Salu2s

DarK_FirefoX


« Última modificación: 30 Mayo 2008, 22:53 pm por Azielito » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Subir imágenes a un servidor « 1 2 »
.NET (C#, VB.NET, ASP)
sexto 11 10,648 Último mensaje 18 Marzo 2011, 02:42 am
por SRVAM
como tener mi propio servidor de almacenamiento de p web para subir mi p web?
Desarrollo Web
netbios_hack1111111j 4 3,755 Último mensaje 23 Octubre 2012, 16:45 pm
por HdM
La página no carga al subir un sistema a mi servidor local
Desarrollo Web
Antoniio 2 1,738 Último mensaje 23 Febrero 2018, 18:40 pm
por Antoniio
Subir archivos a servidor web usando c++
Programación C/C++
juandv10 1 3,235 Último mensaje 18 Diciembre 2019, 22:12 pm
por AlbertoBSD
Como subir imagenes a Microsoft Azure con una aplicacion PHP de otro servidor
Desarrollo Web
SrTrp 0 1,977 Último mensaje 19 Septiembre 2020, 01:32 am
por SrTrp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines