[php] directory listing wil niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben bezig een online filebrowser te maken met mogelijkheid om bestanden te uploaden, directories te maken en verwijderen e.d.

in principe werkt alles. files worden goed gestuurd, directories goed gemaakt.

ik heb echter 1 probleem. wanneer er een bestand naar een andere directory wordt geupload, komt hij daar fisiek wel te staan (gechecked), maar hij wordt niet gelist.
directory listen doe ik als volgt (vrij simpel)
PHP:
1
2
3
4
5
6
$dh = opendir($_SESSION['path'].$_SESSION['virdir']);
while($file = readdir($dh)){
  if(is_file($file)){//echo een zooi
  }elseif(is_dir($file) && $file != "." && $file != ".."){//echo nog wat
  }
}

de directory staat goed, er worden files gelist, maar niet die bestanden die net opgestuurd zijn.
Wordt hier gecached ofzo? doe ik iets anders verkeerd?

n.b. ik voer dus geen chdir uit, geef alleen de string van de directory-naam mee.

Systeem:
linux, apache, php

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
update:

de files zijn wel aanwezig, maar worden niet gelist omdat ze niet onder is_file of is_dir vallen. Laat ik die voorwaarden weg worden ze wel getoond.

Het gaat nu mis wanneer ik de grootte en de permissies van deze bestanden wil opvragen.
In het ftp-programma kan dat wel gewoon.

Acties:
  • 0 Henk 'm!

Verwijderd

Als je het script voor een 2e keer runt, zie je files dan wel? Weet je cker dat eerst de files zijn upgeload en daarna pas het script runt. Want als het tegelijk gebeurt is het logisch dat het niet werkt. Of nog erger eerst script dan upload, dan werkt het cker niet :P

Acties:
  • 0 Henk 'm!

  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Maak je er niet toevallig een symbolic link van? Dit kun je testen door is_link te gebruiken.

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


Acties:
  • 0 Henk 'm!

  • trogdor
  • Registratie: Mei 2003
  • Laatst online: 22-04 10:17
uit http://www.php.net/manual/en/function.opendir.php

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$dir = "/tmp/";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
   if ($dh = opendir($dir)) {
       while (($file = readdir($dh)) !== false) {
           print "filename: $file : filetype: " . filetype($dir . $file) . "\n";
       }
       closedir($dh);
   }
}
?>

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Directory listings worden door PHP weldegelijk gecached; ik weet alleen even niet meer hoe je die kunt flushen?

http://nl3.php.net/manual/en/function.clearstatcache.php

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • twiekert
  • Registratie: Februari 2001
  • Laatst online: 30-08 11:55
Verwijderd schreef op 17 december 2003 @ 11:21:
PHP:
1
2
3
4
5
6
$dh = opendir($_SESSION['path'].$_SESSION['virdir']);
while($file = readdir($dh)){
  if(is_file($file)){//echo een zooi
  }elseif(is_dir($file) && $file != "." && $file != ".."){//echo nog wat
  }
}
verander dit:
PHP:
1
 if(is_file($file))


eens in dit:
PHP:
1
 if ( is_file($_SESSION['path'] . $_SESSION['virdir'] . $file) )
Pagina: 1