Avatar billede aagaard Nybegynder
24. november 2004 - 14:24 Der er 11 kommentarer og
2 løsninger

Upload system

X Jeg har et 'PHP' script, som kan vise alt hvad der er på ens webserver. Men jeg vil gerne have gjort sådan, så når folk uploader noget via et upload system, så skal 'PHP' scriptet bruges til det, så man kan se filerne.. Og Vil gerne have gjort sådan i scriptet at det f.eks. kun er .JPG, GIF, TXT .. Filer der kan blive uploaded.

<span style="font-family: verdana; font-size: 9px; line-height: 11px;">
<?php // Script by Bigfoot - Copyright 2003
// Vi angiver hvilken mappe der skal læses i
$root="./";
// Vi tjekker om $root er en mappe
if(is_dir($root)){?>
<u>Mapper</u><br>
<?/* Vis mappe-funktionen starter her */
// Vi "åbner" mappen
{$handle=opendir($root);

/* Vis mappe-funktionen starter her */
// Vi læser/søger efter mapper
while(($dir=readdir($handle))!==false){
if(is_dir($dir)){
echo"&nbsp;<a href=\"$root$dir\">$dir</a><br>";
}
}
closedir($handle);}
/* Vis fil-funktionen slutter her */?>
<u>Filer</u><br>
<?
// Vi "åbner" mappen
{$handle=opendir($root);

// Vi læser/søger efter mapper
while(($file=readdir($handle))!==false){
if(is_file($file)){
echo"&nbsp;<a href=\"$root$file\">$file</a><br>";
}
}
closedir($handle);}
/* Vis fil-funktionen slutter her */

}
?>
</span>
Avatar billede baitianlong Nybegynder
24. november 2004 - 14:33 #1
Du kan checke filtypen, der uploades:

if(strstr($_FILES['upload_file']['type'], "jpeg") || strstr($_FILES['upload_file']['type'], "gif") || strstr($_FILES['upload_file']['type'], "txt")) {
  move_uploaded_file($_FILES['upload_file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/docs/".$_FILES['upload_file']['name']);
} else {
  print "Filtypen er ikke tilladt!";
}

:)
Avatar billede aagaard Nybegynder
24. november 2004 - 14:40 #2
Hvor skal jeg indsætte det i scriptet?? Er det lige meget hvor?
Avatar billede aagaard Nybegynder
24. november 2004 - 14:42 #3
Ved godt det ikke skal indsættes i scriptet ovenfor, da det jo er et andet script.
Men du skulle vel ikke også vide hvordan scriptet skal se ud, når den bare skal vise de uploadede filer og ikke hele webserver mappen, på webhotellet..
Avatar billede baitianlong Nybegynder
24. november 2004 - 14:51 #4
Tja, så skal du vel bare nøjes med at lave opendir, readdir på den ønskede mappe ?!
Avatar billede aagaard Nybegynder
24. november 2004 - 14:53 #5
Okay.. Prøver jeg .. tusinde tak for hjælpen... Tjekker det lige senere i dag, hvis mit net virker, ellers imorgen tidlig.. Men hvis du vil have point hvis jeg kan få det til at funke, må du lige lægge et svar ???
Avatar billede aagaard Nybegynder
25. november 2004 - 10:11 #6
Kan ikke rigtig få det til at virke :-(
Men hvis mappen den skal gå ind i hedder "upload_filer_yups" Hvordan skal koden så se ud, for her virker det ikke.
Avatar billede baitianlong Nybegynder
25. november 2004 - 15:14 #7
F.eks sådan her:

function getUploadedFiles() {
    $files = array();
    $handle = opendir("upload_filer_yups");
    while($file = readdir($handle)) {
        if($file != '.' && $file != '..') {
            array_push($files, $file);
        }
    }
    asort($files);
    return $files;
}

Så skal mappen ligge samme sted som php dokumentet. Ellers kan du bruge:

$handle = opendir($_SERVER['DOCUMENT_ROOT']."/upload_filer_yups");

Hvis mappen ligger i roden af dit webhotel :)
Avatar billede aagaard Nybegynder
26. november 2004 - 09:21 #8
Jeg kan ikke få det til at virke..

<span style="font-family: verdana; font-size: 9px; line-height: 11px;">
<?php


function getUploadedFiles() {
    $files = array();
    $handle = opendir("upload_filer_yups");
    while($file = readdir($handle)) {
        if($file != '.' && $file != '..') {
            array_push($files, $file);
        }
    }
    asort($files);
    return $files;
}
?>
</span>

Den viser bare en blank side..
Avatar billede baitianlong Nybegynder
26. november 2004 - 16:18 #9
Jamen hvis det er hele siden, er det jo fordi funktionen aldrig bliver kaldt.

<span style="font-family: verdana; font-size: 9px; line-height: 11px;">
<?php
function getUploadedFiles() {
    $files = array();
    $handle = opendir("upload_filer_yups");
    while($file = readdir($handle)) {
        if($file != '.' && $file != '..') {
            array_push($files, $file);
        }
    }
    asort($files);
    return $files;
}
$filer = getUploadedFiles();
foreach($filer as $fil) {
  print $fil."<br>";
}
?>
</span>

Prøv sådan der :)
Avatar billede aagaard Nybegynder
28. november 2004 - 15:33 #10
Virker. men problemet er, at man ikke kan trykke på de forskellige ting, den skriver bare filnavnene..
Avatar billede aagaard Nybegynder
29. november 2004 - 10:35 #11
?
Avatar billede aagaard Nybegynder
30. november 2004 - 09:32 #12
Legende >> Mulighed for at svare??
Avatar billede aagaard Nybegynder
30. november 2004 - 09:33 #13
Lukker spgs. her. for det her kommer ingen vejne, så må du henvende dig, hvis jeg laver en ny tråd om dette. Men du får alligevel lidt point.
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