Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 20
  1. #1
    Sisko ist offline Routinier
    registriert
    29-04-2001
    Beiträge
    346

    Exclamation Upload Formular

    hi,

    gibt es eine Möglichkeit dass ich per Formular Usern einen upload auf meinen Server gestatte?
    Wie würde das per php Funktionieren? Ich würde auch gerne die grösse einer datei beschränken wollen, also z.B. nur 300kb oder so.
    Optinal wäre noch ganz gut wenn man eine Liste der Dateien sieht welche im Verzeichnis liegen und wann sie das letzte mal geändert wurden.
    Achja, ganz wichtig, man sollte natürlich die dateien überschreiben können.

    Hat jemand einen Tipp?
    Dank Dank

  2. #2
    style-guide! ist offline Lounge-Member
    registriert
    19-09-2001
    Ort
    /nrw/zuhaus
    Beiträge
    2.601

  3. #3
    Sisko ist offline Routinier
    registriert
    29-04-2001
    Beiträge
    346

    Arrow

    cool!

    Habe mir jetzt auch schon etwas gebastelt, habe noch ein Problem, wie kann ich mir die Files anzeigen lassen welche schon auf dem Server sind? Mit datum und grösse?
    Ich bekomme da immer eine Fehlermeldung bei mir...habe den befehl readdir genommen...

  4. #4
    style-guide! ist offline Lounge-Member
    registriert
    19-09-2001
    Ort
    /nrw/zuhaus
    Beiträge
    2.601
    raeddir liest nur das verzeichnis aus, um detailinfos zu erhalten, brauchst du noch mehr details zu den einzelnen Dateien.

    Am besten den Inhalt von readdir in ein array packen und das dann nach und nach abarbeiten.

    Vergiss nicht, nur gewisse Dateitypen für den Upload zu erlauben, sonst könntest eine mittlere bis grosse Sicherheitslücke geben!!!!!!!!!!

  5. #5
    Sisko ist offline Routinier
    registriert
    29-04-2001
    Beiträge
    346
    hi,

    also es geht jetzt, ich bekomme auch die Infos wie das datum, nur steht da bei mir immer 1.1.1970 da, bei jedem File...
    Ich habe das so gemacht:

    $time = date("j. F Y, H:i:s",filemtime);
    while ($file = $dir->read()) {
    echo "$time<br>";

    wieso geht das nicht?

    Achso und wenn ich mir alle Dateien auflisten lasse, kann ich da die untergeordneten Ordner rausnehmen? also "." und ".." und dann möchte ich noch die htaccess dateien nicht anzeigen lassen...

    wie kann ich nur gewisse dateien für den upload erlauben?

    thx

  6. #6
    bazdad ist offline Jungspund
    registriert
    14-07-2002
    Ort
    NRW
    Beiträge
    17
    hallöle
    Achso und wenn ich mir alle Dateien auflisten lasse, kann ich da die untergeordneten Ordner rausnehmen? also "." und ".." und dann möchte ich noch die htaccess dateien nicht anzeigen lassen...
    PHP-Code:
    $time date("j. F Y, H:i:s",filemtime); 
    while (
    $file $dir->read()) { 
    if (
    $time != "." && $time != "..") echo "$time<br>"
    eigentlich dürfte der Server die .htaccess gar nicht anzeigen... (oder irre ich mich da? )
    wie kann ich nur gewisse dateien für den upload erlauben?
    du musst einfach nur in dem Upload-Script überprüfen, welche Dateiendung die Datei hat...

    bazdad

  7. #7
    Sisko ist offline Routinier
    registriert
    29-04-2001
    Beiträge
    346
    habe jetzt alles soweit hinbekommen...nur weiss ich nicht wie ich z.B. php, .htaccess Dateien nicht zulassen kann...
    Ich dachte mir dass ich vor dem kopieren einfach abfrage, ob die Endung php oder .htaccess ist, aber ich weiss nicht wie ich so eine Abfrage mache...

    PHP-Code:
    if ($datei_name '*.php'
    geht nämlich z.B. nicht

    thx

    p.s.: Ich glaube dein Script geht nicht...wie ich das verstehe nimmst du an dass das Datum leer ist, ist es aber nicht...

  8. #8
    Sisko ist offline Routinier
    registriert
    29-04-2001
    Beiträge
    346
    doch .htaccess werden vom Server angezeigt...

  9. #9
    Avatar von dipser
    dipser ist offline Lounge-Member
    registriert
    23-06-2002
    Ort
    Osnabrück
    Beiträge
    673
    Du musst wahrscheinlich die letzten 4 Buchstaben abfragen und dann deine Abfrage machen. Wie genau das geht, weiss ich auch nicht, müsste ich erst in SelfPHP nach suchen gehen,... aber ich hab heute was anderes vor Ich hoffe dir geholfen zu haben.

    Achja vielleicht einfach mit strlen($dateiname); die Anzahl der Buchstaben bekommen und dann mit mit irgendeiner Funktion die Buchstaben (von - bis) bestimmen. Die Funktion gibt es!

  10. #10
    Sisko ist offline Routinier
    registriert
    29-04-2001
    Beiträge
    346
    @colin

    wie hat denn deine Methode ausgesehen? Muss doch irgendwie gehen
    Kann man nicht einfach eine Endung von einer Datei bestimmen???

  11. #11
    style-guide! ist offline Lounge-Member
    registriert
    19-09-2001
    Ort
    /nrw/zuhaus
    Beiträge
    2.601
    Vielleicht hilft Dir das: Das Datum der letzen Änderung einer Datei lese ich folgendermassen aus:

    PHP-Code:
    date("d.m.Y H:i",filemtime("dateiname")) 
    Beim Upload prüfen, welche Endung eine Datei hat:

    PHP-Code:
    if(eregi(".php",$filename)==true) die("Nicht erlaubtes Dateiformat"); 
    Vielleicht hilft es ein wenig, ansonsten: http://www.zend.com/codex.php?CID=339

  12. #12
    Sisko ist offline Routinier
    registriert
    29-04-2001
    Beiträge
    346
    mit dem Datum habe ich ja schon gepackt...das mit dem nur bestimmte datein zulassen sieht gut aus...werde es mal versuchen

    danke.

  13. #13
    bazdad ist offline Jungspund
    registriert
    14-07-2002
    Ort
    NRW
    Beiträge
    17
    hi

    PHP-Code:
    if(eregi(".php",$filename)==true) die("Nicht erlaubtes Dateiformat"); 
    :o teste mal bei $filename="test.php.txt"
    PHP-Code:
    ...eregi(".php$",$filename... 
    Wegen der Liste der Dateien in einem Verzeichnis:
    PHP-Code:
    <?php
    $handle
    =opendir('verzeichnis');
    echo 
    "<table>";
    while (
    $file readdir ($handle)) {
            echo 
    "<tr><td>"$file."</td><td>";
            echo 
    date("d.m.Y H:i",filemtime("dateiname")); # Letzter Zugriff
            
    echo "</td><td>"
    }
    closedir($handle);
    ?>
    so ähnlich sollte es eigentlich gehen

    bazdad

  14. #14
    odyss ist offline Eroberer
    registriert
    18-12-2001
    Beiträge
    71

    firewall prinzip

    Hallo,

    wenn Du jemanden erlaubst Dateien hochzuladen ist das ein sehr sensibles Thema. Wer weiß was den Kid`s alles einfällt.

    Besser ist es nach dem firewall Prinzip vorzugehen.
    Erstmals sind alle Dateiformate verboten, außer den Dateien die explizit erlaubt sind.
    Das ist besser wie anderstherum. (Alles erlaubt, außer den explizit verbotenen).

    Ich habe da letzte Jahr mal was programmiert, habs jetzt einfach aus dem switch rauskopiert. Schau Dir das mal an.

    Mit upload_type frägst Du den Dateityp ab, und erlaubst nur den angegebenen Dateien sich auf der Festplatte niederzulassen.

    Alles was im code mit "$pathtemp.$usermd5.$timestring."_".$upload_name"
    zu tun hat, ist nicht themenrelevant.


    case "saveupload": //******** uploading files ******//
    $error="";
    set_time_limit(60);
    $pathtemp = $DOCUMENT_ROOT.$upl_path;

    if($upload <> "none") {
    if($error!=1) {
    $timestring = date("YmdHis");
    $usermd5 = substr(md5($entry[user]),0,5);

    $dest = $pathtemp.$usermd5.$timestring."_".$upload_name;
    if($upload_size>2000000) $info = $toobig;
    //---------- restrict the data-format of the upload ------------
    // echo $upload_type;
    if($upload_type=='image/gif') $ok=3;
    if($upload_type=='image/pjpeg') $ok=3;
    if($upload_type=='image/jpeg') $ok=3;
    if($upload_type=='image/bmp') $ok=3;
    if($upload_type=='application/msword') $ok=3;
    if($upload_type=='application/vnd.ms-excel') $ok=3;
    if($upload_type=='application/vnd.ms-powerpoint')$ok=3;
    if($upload_type=='application/x-zip-compressed') $ok=3;
    if($upload_type=='video/avi') $ok=3;


    if(!($ok==3)) {
    $infofile =$wrongfile2;
    $catID = $entry[catID];
    $parent = $entry[parent];
    $userID = $entry[user];
    }
    if($ok==3) {
    if(copy($upload,$dest)) {
    $entry[upload_name] = $entry[upload_name].",".$usermd5.$timestring."_".$upload_name;
    if($entry[upload_name_show]) $entry[upload_name_show] = $entry[upload_name_show]." &nbsp;+&nbsp; ".$upload_name;
    else $entry[upload_name_show] = $upload_name ;
    } else { $error = 1; }
    }
    }
    @unlink($upload);
    }
    break;

    Viele Grüße
    odyss

  15. #15
    Avatar von rasputin
    rasputin ist offline Lounge-Member
    registriert
    31-10-2001
    Beiträge
    3.102
    Code:
    if(!($ok==3))
    das hab ich jetzt noch nie gesehen
    normal ist doch
    Code:
    if($ok!=3)

Seite 1 von 2 12 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •