tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
1121
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    LN5 LN5 ist offline Mitglied Silber
    Registriert seit
    Nov 2005
    Beiträge
    97
    Tach Leute

    Vor einiger Zeit habe ich ein Upload-Script gesucht und gefunden und würde es jetzt gerne einsetzen. Leider entspricht es noch nicht ganz meinen Ansprüchen. Hier zuerst mal das Script:

    PHP-Code:
    if (isset($sendfiles)){
        
    $numsendfiles count($HTTP_POST_FILES);
        foreach(
    $HTTP_POST_FILES as $strFieldName => $arrPostFiles){
        if (
    $arrPostFiles['size'] > $b_min && $arrPostFiles['size'] < $b_max){
                
    $strFileName $arrPostFiles['name'];
                
    $strFileTemp $arrPostFiles['tmp_name'];
                @
    copy ($strFileTemp"$pfad/$strFileName");
                echo 
    "<br><span class=\"grossschrift\"><font color=green><b>Datei <u>$strFileName</u> erfolgreich  hochgeladen.</b></font></span><br>";
                   }
                   else{
                   echo 
    "<br><span class=\"grossschrift\"><font color=red><b>Die Datei muss grösser als $b_min Bytes und kleiner als $mb MB sein!</b></font></span><br>";}
        } 
    Wie das Ganze funktioniert, ist nachvollziehbar, aber jegliche Versuche das Script meinen Wünschen anzupassen, sind gescheitert.

    Das Script, so wie es hier steht, macht nichts anderes, als die ausgewählte Datei ins oben definierte Verzeichnis zu Uploaden. Ich möchte jetzt aber noch Funktionen einbauen.
    1. Das Bild soll skaliert werden: max. Breite 150 px
    2. Das Bild soll umbenannt werden. Es soll die Mitglieder-ID als Name erhalten. Wie ich die Mitglieder-ID ausgeben ist keine Sache, es geht wirklich nur ums Umbenennen.

    Bin gespannt ob ihr eine Idee habt.

    Danke im Voraus.
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Also erstmal an paar Kritikpunkte am Script an sich:
    • $HTTP_POST_FILES sollte durch $_FILES ersetzt werden
    • copy() sollte move_uploaded_file() weichen
    • Fehlerunterdrueckung mittels @ ist meist boese. Die meisten Fehler kann man von vornherien vermeiden.
    Nun zum eigentlichen Problem: Um die UserID als Dateinamen zu bekommen musst Du diese in $strFileName packen oder eben dieses durch die UserID ersetzen.

    Was die Skalierung angeht empfehle ich Dir mal ein wenig rumzuschauen, die letzten Tage gab es dazu ein paar Threads wo Du sicher hilfreiche Informationen finden kannst.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    LN5 LN5 ist offline Mitglied Silber
    Registriert seit
    Nov 2005
    Beiträge
    97
    Hallo Dennis

    Danke für die rasche Antwort. Kannst du mir aber die Änderungstipps noch begründen bzw. erklären. Das mit der Fehlerunterdrückung ist klar, aber die anderen zwei?
     

  4. #4
    LN5 LN5 ist offline Mitglied Silber
    Registriert seit
    Nov 2005
    Beiträge
    97
    Aja, noch was. Weisst du, wie ich diese Datei dann wieder löschen kann? Wie lautet die Funktion hierfür?
     

  5. #5
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    $HTTP_POST_FILES ist, genau wie $HTTP_POST_VARS, $HTTP_SESSION_VARS, etc., veraltet und wird wohl ueber kurz oder lang rausfliegen. Zumindest in PHP5 koennen diese langen Array-Namen auch per php.ini deaktiviert werden.
    Mit den neuen, kurzen Namen, wie z.B. $_FILES, $_POST, $_SESSION, etc., bist Du dann auf der sicheren Seite.

    move_uploaded_file() verschiebt die Datei prueft vor dem Verschieben ob es sich auch wirklich um eine hochgeladene Datei handelt.

    Der Befehl zum Loeschen einer Datei ist unlink().

    Nachtrag: Und nutze um Deinen Beitraegen noch was hinzuzufuegen bitte den Aendern-Button und erstelle nicht gleich fuer sowas einen neuen Post.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  6. #6
    LN5 LN5 ist offline Mitglied Silber
    Registriert seit
    Nov 2005
    Beiträge
    97
    Ok. Ich hab das Problem gelöst.
     

Ähnliche Themen

  1. Mysql, Suche, ggf Codeschnipsel?
    Von breytex im Forum PHP
    Antworten: 6
    Letzter Beitrag: 10.12.09, 09:55
  2. Codeschnipsel für on Mouseklick....
    Von matze1983 im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 08.11.07, 19:39
  3. Codeschnipsel mit Zeigern und Stuff
    Von Pherseus im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 24.01.06, 17:57
  4. Codeschnipsel
    Von Roman Locher im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 17.03.05, 09:33