Avatar billede a330 Nybegynder
31. januar 2005 - 09:02 Der er 5 kommentarer og
2 løsninger

dokument genkendelse

er der nogle som kan hjælpe med et script, som kan genkende en *.doc eller *.pdf fil.

og hvis pågælden filtype er til stede skal filnavne skrives ud (echo)
Avatar billede bromer Nybegynder
31. januar 2005 - 09:07 #1
Hvis du kører PHP på en Unix server er der højst sandsynligt et "file" util du kan bruge.
Avatar billede the_ghost Nybegynder
31. januar 2005 - 09:08 #2
$handle=opendir('.');
while (($filename = readdir($handle))!==false)
{
if( substr($filename, -4) == ".pdf" || substr($filename, -4) == ".doc" )
  echo $filename
}
Avatar billede the_ghost Nybegynder
31. januar 2005 - 09:11 #3
Her gik jeg ud fra at du vil kigge et bibliotek igennem, efter de filer du beskriver
Avatar billede a330 Nybegynder
31. januar 2005 - 09:15 #4
øh ikke forstået

men måske lidt mere forklaring fra min side.

En bruger har uploaded en fil, hvor navnet på filen står i databasen.
når andre bruger går ind på pågældende emne (forum)
skal filen kun kunne ses, hvis det er en *.doc eller *.pdf fil
iden var så, at filnavnet står som et link brugeren kan trykke på.

selve uploadscriptet kommer her.

<?php 

}
function upload_file() {
global $userfile, $userfile_name, $userfile_size, $userfile_type, $archive_dir, $max_filesize, $WINDIR;

$archive_dir="C:\apache\htdocs\srs\forum\uploadedimages";

if(isset($WINDIR)) { $userfile = str_replace("\\\\","\\", $userfile); }

$filename = basename($userfile_name);
$max_filesize = 20000;

if($userfile_size > $max_filesize) die ("$filename is too big! Only $max_filesize bytes allowed!");
if(!@copy($userfile, "$archive_dir/$filename")) die ("Can't copy $userfile_name to $filename.");
if(isset($WINDIR) && !@unlink($userfile)) die ("Can't delete the file $userfile_name.");

echo "Filetype: $userfile_type <br>" ;
echo "<strong>Dit emne er oprettet</strong><br>";
echo '<input name="luk" type="button" onClick="window.close()" value="Luk dette Vindue"><br>';
?>
Avatar billede bromer Nybegynder
31. januar 2005 - 09:31 #5
Hvis du kun ser på filnavnet er det jo i bedste fald kun et gæt man laver. Jeg kan jo sagtens rename et fil.exe til fil.doc, hvis jeg vil det.

Du kan istedet se på den MIME type, der bliver sendt med når du uploder en fil. Den ligger i $_FILES['userfile']['size'], som beskrevet http://www.php.net/manual/en/features.file-upload.php. Mime typen for word er vist "Application/msword". Det kan du se på http://www.ltsw.se/knbase/internet/mime.htp.

Det er dog heller ikke svært at snyde det system så det bedste ville være, hvis du kunne bruge "file", som ligger på de fleste unix servere. Kører du PHP på Unix eller windows?

Rune
Avatar billede a330 Nybegynder
31. januar 2005 - 09:40 #6
den ligger hos B-one mener det er Unix
Avatar billede bromer Nybegynder
31. januar 2005 - 09:48 #7
Nu har jeg ikke den store fidus til b-one, men prøv engang om du kan køre file på dine filer? Det skal du så bruge "exec" til. http://dk2.php.net/manual/en/function.exec.php
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester