Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2010, 13:36
Caminantejm
 
Fecha de Ingreso: julio-2009
Mensajes: 75
Antigüedad: 15 años, 5 meses
Puntos: 2
No puedo subir 8 Mb.

Subir archivos.

Código PHP:
Ver original
  1. <?
  2. /*
  3. Directory Listing Script - Version 2
  4. ====================================
  5. Script Author: Ash Young <[email protected]>. www.evoluted.net
  6.  
  7. */
  8. $startdir = '.';
  9.  
  10. $showthumbnails = true;
  11.  
  12. $showdirs = true;
  13.  
  14. $forcedownloads = false;
  15.  
  16. $hide = array(
  17.                 'dlf',
  18.                 'index.php',
  19.                 'Thumbs',
  20.                 '.htaccess',
  21.                 '.htpasswd'
  22.             );
  23.              
  24.            
  25. $displayindex = false;
  26.  
  27. /*
  28. Allow uploads? - If enabled users will be able to upload
  29. files to any viewable directory.
  30. */
  31. $allowuploads = true;
  32.  
  33. $overwrite = false;
  34.  
  35.  
  36. $indexfiles = array (
  37.                 'index.html',
  38.                 'index.htm',
  39.                 'default.htm',
  40.                 'default.html'
  41.             );
  42.            
  43. $filetypes = array (
  44.                 'png' => 'jpg.gif',
  45.                 'jpeg' => 'jpg.gif',
  46.                 'bmp' => 'jpg.gif',
  47.                 'jpg' => 'jpg.gif',
  48.                 'gif' => 'gif.gif',
  49.                 'zip' => 'archive.png',
  50.                 'rar' => 'archive.png',
  51.                 'pdf' => 'pdf.gif',
  52.                 'rar' => 'rar.gif',
  53.             );
  54.            
  55. /*
  56. Only edit what is below this line if you are sure that you know what you
  57. are doing!
  58. */
  59. if(!function_exists('imagecreatetruecolor')) $showthumbnails = false;
  60. $leadon = $startdir;
  61. if($leadon=='.') $leadon = '';
  62. if((substr($leadon, -1, 1)!='/') && $leadon!='') $leadon = $leadon . '/';
  63. $startdir = $leadon;
  64.  
  65. if($_GET['dir']) {
  66.     //check this is okay.
  67.    
  68.     if(substr($_GET['dir'], -1, 1)!='/') {
  69.         $_GET['dir'] = $_GET['dir'] . '/';
  70.     }
  71.    
  72.     $dirok = true;
  73.     $dirnames = split('/', $_GET['dir']);
  74.     for($di=0; $di<sizeof($dirnames); $di++) {
  75.        
  76.         if($di<(sizeof($dirnames)-2)) {
  77.             $dotdotdir = $dotdotdir . $dirnames[$di] . '/';
  78.         }
  79.        
  80.         if($dirnames[$di] == '..') {
  81.             $dirok = false;
  82.         }
  83.     }
  84.    
  85.     if(substr($_GET['dir'], 0, 1)=='/') {
  86.         $dirok = false;
  87.     }
  88.    
  89.     if($dirok) {
  90.          $leadon = $leadon . $_GET['dir'];
  91.     }
  92. }
  93.  
  94. if($_GET['download'] && $forcedownloads) {
  95.     $file = str_replace('/', '', $_GET['download']);
  96.     $file = str_replace('..', '', $file);
  97.  
  98.     if(file_exists($leadon . $file)) {
  99.         header("Content-type: application/x-download");
  100.         header("Content-Length: ".filesize($leadon . $file));
  101.         header('Content-Disposition: attachment; filename="'.$file.'"');
  102.         readfile($leadon . $file);
  103.         die();
  104.     }
  105. }
  106.  
  107. if($allowuploads && $_FILES['file']) {
  108.     $upload = true;
  109.     if(!$overwrite) {
  110.         if(file_exists($leadon.$_FILES['file']['name'])) {
  111.             $upload = false;
  112.         }
  113.     }
  114.    
  115.     if($upload) {
  116.         move_uploaded_file($_FILES['file']['tmp_name'], $leadon . $_FILES['file']['name']);
  117.     }
  118. }
  119.  
  120. $opendir = $leadon;
  121. if(!$leadon) $opendir = '.';
  122. if(!file_exists($opendir)) {
  123.     $opendir = '.';
  124.     $leadon = $startdir;
  125. }
  126.  
  127. if ($handle = opendir($opendir)) {
  128.     while (false !== ($file = readdir($handle))) {
  129.         //first see if this file is required in the listing
  130.         if ($file == "." || $file == "..")  continue;
  131.         $discard = false;
  132.         for($hi=0;$hi<sizeof($hide);$hi++) {
  133.             if(strpos($file, $hide[$hi])!==false) {
  134.                 $discard = true;
  135.             }
  136.         }
  137.        
  138.         if($discard) continue;
  139.         if (@filetype($leadon.$file) == "dir") {
  140.             if(!$showdirs) continue;
  141.        
  142.             $n++;
  143.             if($_GET['sort']=="date") {
  144.                 $key = @filemtime($leadon.$file) . ".$n";
  145.             }
  146.             else {
  147.                 $key = $n;
  148.             }
  149.             $dirs[$key] = $file . "/";
  150.         }
  151.         else {
  152.             $n++;
  153.             if($_GET['sort']=="date") {
  154.                 $key = @filemtime($leadon.$file) . ".$n";
  155.             }
  156.             elseif($_GET['sort']=="size") {
  157.                 $key = @filesize($leadon.$file) . ".$n";
  158.             }
  159.             else {
  160.                 $key = $n;
  161.             }
  162.             $files[$key] = $file;
  163.            
  164.             if($displayindex) {
  165.                 if(in_array(strtolower($file), $indexfiles)) {
  166.                     header("Location: $file");
  167.                     die();
  168.                 }
  169.             }
  170.         }
  171.     }
  172.     closedir($handle);
  173. }
  174.  
  175. //sort our files
  176. if($_GET['sort']=="date") {
  177.     @ksort($dirs, SORT_NUMERIC);
  178.     @ksort($files, SORT_NUMERIC);
  179. }
  180. elseif($_GET['sort']=="size") {
  181.     @natcasesort($dirs);
  182.     @ksort($files, SORT_NUMERIC);
  183. }
  184. else {
  185.     @natcasesort($dirs);
  186.     @natcasesort($files);
  187. }
  188.  
  189. //order correctly
  190. if($_GET['order']=="desc" && $_GET['sort']!="size") {$dirs = @array_reverse($dirs);}
  191. if($_GET['order']=="desc") {$files = @array_reverse($files);}
  192. $dirs = @array_values($dirs); $files = @array_values($files);
  193.  
  194.  
  195. ?>
  196. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  197. <html xmlns="http://www.w3.org/1999/xhtml">
  198. <head>
  199. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  200. <title>Directory Listing of <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></title>
  201. <link rel="stylesheet" type="text/css" href="dlf/styles.css" />
  202. <?
  203. if($showthumbnails) {
  204. ?>
  205. <script language="javascript" type="text/javascript">
  206. <!--
  207. function o(n, i) {
  208.     document.images['thumb'+n].src = 'dlf/i.php?f='+i;
  209.  
  210. }
  211.  
  212. function f(n) {
  213.     document.images['thumb'+n].src = 'dlf/trans.gif';
  214. }
  215. //-->
  216. </script>
  217. <?
  218. }
  219. ?>
  220. </head>
  221. <body>
  222. <div id="container">
  223. <div id="logo"><img src="" alt="logo" width="800" height="150" longdesc="logotipo de la empresa" /></div>
  224.   <h1>Directory Listing of
  225.   <?=dirname($_SERVER['PHP_SELF']).'/'.$leadon;?></h1>
  226.   <div id="breadcrumbs"> <a href="<?=$_SERVER['PHP_SELF'];?>">Principal [Home]</a>
  227.   <?
  228.      $breadcrumbs = split('/', $leadon);
  229.     if(($bsize = sizeof($breadcrumbs))>0) {
  230.         $sofar = '';
  231.         for($bi=0;$bi<($bsize-1);$bi++) {
  232.             $sofar = $sofar . $breadcrumbs[$bi] . '/';
  233.             echo ' &gt; <a href="'.$_SERVER['PHP_SELF'].'?dir='.urlencode($sofar).'">'.$breadcrumbs[$bi].'</a>';
  234.         }
  235.     }
  236.  
  237.     $baseurl = $_SERVER['PHP_SELF'] . '?dir='.$_GET['dir'] . '&amp;';
  238.     $fileurl = 'sort=name&amp;order=asc';
  239.     $sizeurl = 'sort=size&amp;order=asc';
  240.     $dateurl = 'sort=date&amp;order=asc';
  241.    
  242.     switch ($_GET['sort']) {
  243.         case 'name':
  244.             if($_GET['order']=='asc') $fileurl = 'sort=name&amp;order=desc';
  245.             break;
  246.         case 'size':
  247.             if($_GET['order']=='asc') $sizeurl = 'sort=size&amp;order=desc';
  248.             break;
  249.            
  250.         case 'date':
  251.             if($_GET['order']=='asc') $dateurl = 'sort=date&amp;order=desc';
  252.             break;  
  253.         default:
  254.             $fileurl = 'sort=name&amp;order=desc';
  255.             break;
  256.     }
  257.   ?>
  258.   </div>
  259.   <div id="listingcontainer">
  260.     <div id="listingheader">
  261.     <div id="headerfile"><a href="<?=$baseurl . $fileurl;?>">Archivo [File]</a></div>
  262.     <div id="headersize"><a href="<?=$baseurl . $sizeurl;?>">Tamaño</a></div>
  263.     <div id="headermodified"><a href="<?=$baseurl . $dateurl;?>">Última actualización [Last update]</a></div>
  264.     </div>
  265.     <div id="listing">
  266.     <?
  267.     $class = 'b';
  268.     if($dirok) {
  269.     ?>
  270.     <div><a href="<?=$_SERVER['PHP_SELF'].'?dir='.urlencode($dotdotdir);?>" class="<?=$class;?>"><img src="dlf/dirup.png" alt="Folder" /><strong>..</strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($dotdotdir));?></a></div>
  271.     <?
  272.         if($class=='b') $class='w';
  273.         else $class = 'b';
  274.     }
  275.     $arsize = sizeof($dirs);
  276.     for($i=0;$i<$arsize;$i++) {
  277.     ?>
  278.     <div><a href="<?=$_SERVER['PHP_SELF'].'?dir='.urlencode($leadon.$dirs[$i]);?>" class="<?=$class;?>"><img src="dlf/folder.png" alt="<?=$dirs[$i];?>" /><strong><?=$dirs[$i];?></strong> <em>-</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$dirs[$i]));?></a></div>
  279.     <?
  280.         if($class=='b') $class='w';
  281.         else $class = 'b'; 
  282.     }
  283.    
  284.     $arsize = sizeof($files);
  285.     for($i=0;$i<$arsize;$i++) {
  286.         $icon = 'unknown.png';
  287.         $ext = strtolower(substr($files[$i], strrpos($files[$i], '.')+1));
  288.         $supportedimages = array('gif', 'png', 'jpeg', 'jpg');
  289.         $thumb = '';
  290.        
  291.         if($showthumbnails && in_array($ext, $supportedimages)) {
  292.             $thumb = '<span><img src="dlf/trans.gif" alt="'.$files[$i].'" name="thumb'.$i.'" /></span>';
  293.             $thumb2 = ' onmouseover="o('.$i.', \''.urlencode($leadon . $files[$i]).'\');" onmouseout="f('.$i.');"';
  294.            
  295.         }
  296.        
  297.         if($filetypes[$ext]) {
  298.             $icon = $filetypes[$ext];
  299.         }
  300.        
  301.         $filename = $files[$i];
  302.         if(strlen($filename)>43) {
  303.             $filename = substr($files[$i], 0, 40) . '...';
  304.         }
  305.        
  306.         $fileurl = $leadon . $files[$i];
  307.         if($forcedownloads) {
  308.             $fileurl = $_SESSION['PHP_SELF'] . '?dir=' . urlencode($leadon) . '&download=' . urlencode($files[$i]);
  309.         }
  310.  
  311.     ?>
  312.     <div><a href="<?=$fileurl;?>" class="<?=$class;?>"<?=$thumb2;?>><img src="dlf/<?=$icon;?>" alt="<?=$files[$i];?>" /><strong><?=$filename;?></strong> <em><?=round(filesize($leadon.$files[$i])/1024);?>KB</em> <?=date ("M d Y h:i:s A", filemtime($leadon.$files[$i]));?><?=$thumb;?></a></div>
  313.     <?
  314.         if($class=='b') $class='w';
  315.         else $class = 'b'; 
  316.     }  
  317.     ?></div>
  318.     <?
  319.     if($allowuploads) {
  320.         $phpallowuploads = (bool) ini_get('file_uploads');     
  321.         $phpmaxsize = ini_get('upload_max_filesize');
  322.         $phpmaxsize = trim($phpmaxsize);
  323.         $last = strtolower($phpmaxsize{strlen($phpmaxsize)-1});
  324.         switch($last) {
  325.             case 'g':
  326.                 $phpmaxsize *= 1024;
  327.             case 'm':
  328.                 $phpmaxsize *= 1024;
  329.         }
  330.    
  331.     ?>
  332.     <div id="upload">
  333.         <div id="uploadtitle"><strong>File Upload</strong> (Max Filesize: <?=$phpmaxsize;?>KB)</div>
  334.         <div id="uploadcontent">
  335.             <?
  336.             if($phpallowuploads) {
  337.             ?>
  338.             <form method="post" action="<?=$_SERVER['PHP_SELF'];?>?dir=<?=urlencode($leadon);?>" enctype="multipart/form-data">
  339.             <input type="file" name="file" /> <input type="submit" value="Upload" />
  340.             </form>
  341.             <?
  342.             }
  343.             else {
  344.             ?>
  345.             File uploads are disabled in your php.ini file. Please enable them.
  346.             <?
  347.             }
  348.             ?>
  349.         </div>
  350.        
  351.     </div>
  352.     <?
  353.     }
  354.     ?>
  355.   </div>
  356. </div>
  357.  
  358. </body>
  359. </html>

Me va muy bien pero hay un problema. Está permitido [$allowuploads = true;]
No me permite subir un archivo de 8 Mb. He leído en algún sitio que no se permite más de un porcentaje de la capacidad del servidor. Cuando lo cargo este script me pone "Max Filesize: 20480KB"

Saludos.
Caminantejm.