[PHP] Mini BilderUpload Script

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Aslan, 21. Oktober 2007 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 21. Oktober 2007
    Mini BilderUpload Script

    Hallo,

    ich wollte nen kleines Upload Script coden. Unzwar hab ich mehrere User in eine Datenbank hochgeladen wo noch jeder ein ProfilBild bekommen soll. Ich hab es mir so gedacht:

    Max hat die ID1.
    Wir klicken auf Max sein Profil: /user.php?id=1
    Das Bild xy.jpg wird hochgeladen und auf dem server nach der id unbennant (1.jpg).
    Wenn man auf das Profil von ihm geht, wird die datei 1.jpg in einer bestimmten tabelle geladen.

    Also das ausgeben sollte nicht so wirklich das Problem sein.
    Jedch hab ich nicht so wirklich Ahnung wie das Uploaden funtzen soll.
     
  2. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Upload is PHP ist relativ einfach :

    das kann dann z.B. so aussehen :

    PHP:
    < form id = "upload"  name = "upload"  enctype = "multipart/form-data"  method = "post"  action = "" >
      <
    input type = "file"  name = "upload_file"  id = "upload_file"  />
      <
    input type = "submit"  name = "upload"  id = "upload"  value = "Upload"  />
    </
    form > ';

    $dir = '
    images / ';
    move_uploaded_file($_FILES['
    upload_file '][' tmp_name '],$dir.$_FILES[' upload_file '][' name ']);
    Ist ein ganz einfaches Beispiel, die Datei die im Formular ausgewählt wird, wird nach /images hochgeladen, du solltest jedoch aufpassen, da man damit ALLES hochladen kann, also auch .php Dateien !
     
  3. 21. Oktober 2007
    AW: Mini BilderUpload Script

    kann man das nicht eingrenzen auf die ganzen bild daten?
     
  4. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Klar kannst du das eingrenzen, könntest dir zum Beispiel ein Array anlegen welches alls erlaubten Dateitypen enthält, und beim Upload überpüfst du einfach mittels der in_array() Funktion ob die Datei zu den erlaubten dazu gehört.

    Könnte zum Beispeil so aussehen

    PHP:
    $allowed  = array( ".jpg" ".gif" ); 

    // Hier trennst du die Dateierweiterung vom Namen ab
    $ext  explode ( "." $name );
    $ext  "." . $ext [( count ( $ext )- 1 )];

    // Und hier prüfst du ob die Dateierweiterung (z.B  .jpg ) in deinem array enthalten ist
    if( in_array ( strtolower ( $ext ),  $allowed )) { 
       
    // Datei uploaden
    }
    else {
     echo 
    "Datei nicht erlaubt"
    }
     
  5. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Die Dateiendung des Namens sollte nicht zur Differenzierung des Dateityps genutzt werden, denn diese Daten kommen alle vom Browse und sind somit nicht vertrauenswürdig. Hier müsse genauere Funktionen genutzt werden um z.B. den MIME - Typ festzustellen und selbst das ist nicht komplett sicher, jedoch reicht der vergleich der dateiendung nun mal gar nicht.

    Wenn du nur Bilder uploaden lassen willst, wäre hier z.B. die getimagesize - Funktion vorteilhaft oder eher, das mindeste.
     
  6. 21. Oktober 2007
    AW: Mini BilderUpload Script

    hmm ich hab das nicht so geschafft mit der upload funktion :O

    PHP:

    <p align="center">
      <input type="file" name="upload_file" id="upload_file" />
      <input type="submit" name="upload" id="upload" value="Upload" />
    </p>

    <form id="upload" name="upload" enctype="multipart/form-data" method="post" action="">
    </form>
    <div align="center">
    <?php
    $dir 
    'images/' ;
    move_uploaded_file ( $_FILES [ 'upload_file' ][ 'tmp_name' ], $dir . $_FILES [ 'upload_file' ][ 'name' ]);
    ?>


     
  7. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Und dein Fehler ist jetzt noch wo?

    Hast du dir wirklich die Links zum Upload mal reingetan? Besonders die Doku zum File-Upload von PHP?!
     
  8. 21. Oktober 2007
    AW: Mini BilderUpload Script

    & wie soll ich das machen oO?
     
  9. 21. Oktober 2007
    AW: Mini BilderUpload Script

    mach mal die inputfelder in deine form ^^
    und bei action gib ma den dateinamen an (denk mal index.php)

    und
    images/ muss CHMOD 777 haben

    So wies ausschaut weißte noch nichmals das
    ahja und die datei heißt nun auch nicht "id".jpg sondern hat noch den namen der hochzuladenen datei

    mfg
     
  10. 21. Oktober 2007
    AW: Mini BilderUpload Script

    in meinem fall wohl eher nicht, da ich das per xampp (local) mache.

    aber wenn ich auf upload klicke kommt halt nix xD
     
  11. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Pack deine beiden <inputs> mit in das <form> rein !!
    Ausserdem solltest du bei action="" auch das Script angeben welches deine Dateien letzendlich hochlädt...
     
  12. 21. Oktober 2007
    AW: Mini BilderUpload Script

    so jetzt hab ich mal was altes von mir gefunden, wo kann ich den den pfad in \images\ ändern?
    PHP:
    <? 
    $sendfile = $_REQUEST [ "sendfile" ];{  $fn = $_FILES [ "file" ][ "name" ];  $tn = $_FILES [ "file" ][ "tmp_name" ]; 
    $dir  'images/' ;
    if(
    move_uploaded_file ( $tn dirname ( images ). "/" . $fn ))  $result = "<br>upload done</p>"
    else 
    $result = "<br>upload failed</p>" ; }  ?><html><body>
    <form method=POST></form><form enctype="multipart/form-data" method="post" action="">
      <div align="center">
        <input type=file name=file size=20>
        <input type="submit" value="Upload">
        <input type="hidden" name="sendfile" value="true">
        <?=$result?>
      </div>
    </form>

     
  13. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Du hast doch da die Variable namens $dir = "images/" ?!?!
    Da musst du einfach nur noch deinen Pfad angeben.... aber der steht schon auf images...


    ...oder hab ich deine Frage jetzt falsch verstanden?^^


    PS: Das is ein wirklich hässlicher Code...
    Das ist einfach falsch, auch wenn es meist wegen der Toleranz der Browser keine Fehler gibt... Trotzdem solltest du versuchen richtigen validen Code zu benutzen...

    Nimm als EingabeMaske einfach mal folgendes....
    Code:
    <form action="" id="upload" name="upload" enctype="multipart/form-data" method="post">
     <input type="file" name="upload_file" id="upload_file">
     <input type="submit" name="upload" id="upload" value="Upload">
    </form>
    
    Und in die PHP Datei welche dein Bild hochladen soll schreibst du folgendes
    PHP:
    <? php
    $dir 
    'images/' ;
    move_uploaded_file ( $_FILES [ 'upload_file' ][ 'tmp_name' ] ,  $dir . $_FILES [ 'upload_file' ][ 'name' ]);
    ?>
    So fast geschafft, jetzt solltest du nur noch bei dem <form action="" in der HTML datei bei dem action="" angeben, wie die php datei heißt... also z.b action="img_upload.php"

    Dann sollte das ganze auch funktionieren.
     
  14. 21. Oktober 2007
    AW: Mini BilderUpload Script

    das funktioniert aber nicht, soll ich den gesamten root geben wie z.B.:
    C:\xampplite\htdocs\intern\images

    Mfg?
     
  15. 21. Oktober 2007
    AW: Mini BilderUpload Script


    Was heißt denn das Funktioniertr nicht?
    - Bekommst du eine Fehlermeldung?
    - Bekommst du nur eine leere Seite angezeigt?
    - Ist das Bild was du hochladen wolltest nicht im Ordner wo es sein sollte?
     
  16. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Es funtz jetzt!
     
  17. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Aslan wo ist das Problem dich endlich mit der Doku zu beschäftigen?

    Formular erzeugt $_FILES array, Datei kontrollieren (bereits erklärt und Doku ausreichend vorhanden), Datei verschieben (bereits erklärt Doku ausreichend vorhanden) .... Wir sind hier in einer Underground Community für Multimedia und Technik doch nicht für deine HTML und PHP - Grundkenntnisse verantwortlich.

    php.net/move_uploaded_file ALL DEINE FRAGEN ERKLÄRT.
     
  18. 21. Oktober 2007
    AW: Mini BilderUpload Script

    Welchen Code hast du jetzt im moment genommen? Deinen verwurschtelten da oder den, den ich zuletz gepostet habe?

    Zeig bitte mal was du da hast....
     
  19. 21. Oktober 2007
    AW: Mini BilderUpload Script

    kann er dir per PM schicken

    @Aslan: in diesem Fall wäre es angebracht gewesen auf MakenX zu hören und einfach mal zu lesen
     
  20. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.