Autor | Zpráva | ||
---|---|---|---|
týpek Profil * |
#1 · Zasláno: 13. 10. 2011, 13:20:26
Ahoj
mám index.php a v něm upload skript, který nahrané soubory dává do složky "upload" , ve složce upload jsem si udělal roster.php ten vypisuje obsah adresáře, tedy soubory jejich velikost a poslední změnu, když zadám adresu adresa.cz/upload/roster.php funguje to a vypíše to obsah adresáře "adresa.cz/upload/" když ale dám include roster.php do index.php a zadám adresu adresa.cz/index.php tak mi to vypíše obsah "adresa.cz/" tedy (index.php, upload) tak jsem tedy soubor roster.php přesunul k souboru index.php do adresa.cz/ a v roster.php jsem změnil opendir('.') za opendir('./upload/') podle mě korektní a mělo by to fungovat ale v index.php mi to to píše "Warning: filesize() [function.filesize.html]: stat failed for nahranýsoubor.rar in adresa.cz/roster.php on line 21" a "Warning: filemtime() [function.filemtime.html]: stat failed for nahranýsoubor.rar in adresa.cz/roster.php on line 35" tady přikládám roster.php <?php $filelist = array(); if ($handle = opendir('./upload/')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $filelist[] = $file; } } closedir($handle); } ?> <table border="1" bgcolor="#56514c" rules="all"> <?php foreach ($filelist as $item) { $size = filesize($item); if($size < 1024) {$size2= $size. " B";} if ($size >= 1024) {$size = round($size/1024); $size2= $size. " KB";} if ($size >= 1024) {$size = round($size/1024 , 1); $size2= $size. " MB";} if ($size >= 1024) {$size = round($size/1024 , 2); $size2= $size. " GB";} $date = date("d.m.y", filemtime($item)); $time = date("H:i", filemtime($item)); echo "<tr><td>".$item."</td><td>".$size2."</td><td>".$date."<br />".$time."</td></tr>\n"; } unset ($item); ?> </table> jak mám tedy vložit roster.php do indexu tak aby mi to vypisovalo obsah složky "upload"? |
||
Knight Profil |
#2 · Zasláno: 13. 10. 2011, 13:26:39
Ten opendir('./upload/') se mi nelíbí.
Používal bych buď absolutní cesty, pomocí $_SERVER["DOCUMENT_ROOT"], nebo magickou konstantu __DIR__, která vrací cestu ke skriptu (přičemž pokud je v includovaném souboru, tak je to jeho cesta). |
||
Knight Profil |
#3 · Zasláno: 13. 10. 2011, 13:36:10
Takže ještě pro doplnění:
$handle = opendir(__DIR__ . '/upload') otevře složku /upload z umístění, kde je roaster.php. Takže pokud bude roaster.php ve složce upload, bude se otevírat upload/upload. $handle = opendir($_SERVER["DOCUMENT_ROOT"] . '/upload') otevře vždy složku /upload, která je v rootu webu |
||
týpek Profil * |
#4 · Zasláno: 13. 10. 2011, 13:46:34
dal jsem tam tedy
$handle = opendir($_SERVER["DOCUMENT_ROOT"] . '/upload') ale v indexu mi to pořád vypisuje chyby když zadám adresu na roster.php tak se vypíše tabulka bez chyb Warning: filesize() [function.filesize.html]: stat failed for ziz.xls in D:\HTTP\upload\roster.php on line 22 Warning: filemtime() [function.filemtime.html]: stat failed for ziz.xls in D:\HTTP\upload\roster.php on line 36 Warning: filemtime() [function.filemtime.html]: stat failed for ziz.xls in D:\HTTP\upload\roster.php on line 37 |
||
oop Profil * |
#5 · Zasláno: 13. 10. 2011, 16:00:54
Variace na stejne téma...
<?php class MyDirectoryIterator extends DirectoryIterator { public function __construct($path) { parent::__construct($path); } public function getFormatSize(){ $Size = $this->getSize(); if($Size == 0){ return("0 Bytes"); } $sizeName = array(" Bytes"," KB"," MB"," GB"," TB"," PB"," EB"," ZB"," YB"); return round($Size/pow(1024,($i=floor(log($Size,1024)))),2).$sizeName[$i]; } } print"<table>\n"; foreach (new MyDirectoryIterator('./upload/') as $item) { if($item->isFile()){ print '<tr><td>'.$item->getFilename().'</td><td>'.$item->getFormatSize().'</td><td>'.date("d.m.y H:i", $item->getMTime()).'</td></tr>'."\n"; } } print"</table>\n"; ?> |
||
týpek Profil * |
#6 · Zasláno: 13. 10. 2011, 21:40:12
díky "oop", tohle funguje skvěle
|
||
Časová prodleva: 13 let
|
0