Upload in Verzeichnis, Eintrag in DB

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Upload in Verzeichnis, Eintrag in DB

    hallo,
    versuche gerade mittels eines formulares ein bild auf meinen server (in ein bestimmtes verzeichnis) zu laden.
    nebenher soll der bildname aber auch in die datenbank geschrieben werden.

    http://de3.php.net/manual/de/feature...ad.post-method
    hab mir schon das hier aus einem anderen post angesehen,
    komm aber nicht weiter.

    könnte mir jemand trotzdem weiterhelfen?

    das steht im template-formular:

    <input type="file" enctype="multipart/form-data" name="Bild" size="40">

    und das ist der teil, der die datei hochladen soll bzw den namen in die datenbank eintragen soll:

    PHP-Code:
      mysql_query("INSERT INTO ".$prefix."_news (id, top, title, writer, date, preview_news, news, pic, Bild) VALUES ('','$top','$title','$writer','$time','$pnews','$news','$pic','$Bild')");

                            echo 
    "<table width=\"100%\" cellspacing=\"2\" cellpadding=\"3\" align=\"center\" border=\"0\">";
                            echo 
    "<tr><td align=\"left\" bgcolor=\"#C0C0C0\" colspan=\"3\" >News eingetragen - $title</td></tr>";
                            echo 
    "<tr><td><div align=\"center\"><b>News eingetragen</b></div></td></tr>";
                            echo 
    "</table>";


                         } else {

                                
    $datum date("d.m.Y, H:i");
                                if (
    $data[top] == "1") {
                                   
    $preview "<tr>
                                              <td valign=\"top\"><b>Teilauszug:</b><br>
                                                                                       </td>
                                              <td><textarea name=\"preview_news\" cols=\"42\" rows=\"8\" wrap=\"physical\"></textarea></td>
                                              </tr>"
    ;
                                }

                                echo 
    "<table width=\"100%\" cellspacing=\"2\" cellpadding=\"3\" align=\"center\" border=\"0\">";
                                echo 
    "<tr><td align=\"left\" bgcolor=\"#C0C0C0\" colspan=\"3\" >News schreiben</td></tr>";

                    
    #--------------------------------
                                   //echo "<form enctype=\"multipart/form-data\" action=\"$PHP_SELF?act=upload\" method=\"post\">";
                       //echo "<input type=\"file\" name=\"Bild\" enctype=\"multipart/form-data\"><br><br>";
                       //<input type=\"submit\" value=\"hochladen\"></form>";


                       
    $uploaddir realpath("../images/")."/";
                       
    $tempname $_FILES['Bild']['tmp_name'];
                       
    $name $_FILES['Bild']['name'];
                       
    $type $_FILES['Bild']['type'];
                       
    $size $_FILES['Bild']['size'];

                       if (
    $type != "image/gif" && $type != "image/pjpeg")
                        
    $err[] = "Es dürfen nur JPEG oder GIF Dateien hochgeladen werden.";

                       if (
    $size "30000") {
                        
    $size $size 1024;
                        
    $size round($size,0);
                           
    $err[] = "Die Datei \"$name\" ist zu groß!<br><br>Dateigröße: $size KB<br>Maximale Dateigröße: 30 KB!";
                       }

                       if (empty(
    $err)) {
                        
    copy($tempname$uploaddir $name);
                           echo 
    "Die Datei \"$name\" wurde erfolgreich hochgeladen!";
                           echo 
    "<br><br>URL: <b>[url]http://www.domain.de/news/images/[/url]$name</b>";
                       }

                       else {
                        foreach(
    $err as $error)
                        echo 
    "$error<br>";
                             }

                
    #-------------------------------------------------

                                
    eval ("\$news_add_top = \"".gettemplate("news_add_top")."\";");
                                echo 
    $news_add_top;

                                do {
                                   echo 
    "<option value=\"$data5[user]\">$data5[user]</option>";
                                } while (
    $data5 mysql_fetch_assoc($sql5));

                                eval (
    "\$news_add_bottom = \"".gettemplate("news_add_bottom")."\";");
                                echo 
    $news_add_bottom;
                           }

                      } 


    gruss
    microbe
    Zuletzt geändert von microbe; 06.08.2003, 15:59.

  • #2
    also ich weiß jetzt aber nicht was dein problem genau ist ?
    du brachst hilfe ..
    wobei genau ?

    Kommentar


    • #3
      hallo,
      das problem ist, das die datei
      1. nicht hochgeladen,
      2. der dateiname nicht in die datenbank eingetragen wird...

      EDIT:

      hatte es schon soweit, das wenigstens der pfad des bildes in die db gespeichert wurde...

      vielleicht sollte ich nochmal erwähnen, dass das script auf templates basiert, daher "TSCHULDIGUNG" dafür, das es so zusammenhangslos ausschaut.

      gruss
      microbe
      Zuletzt geändert von microbe; 06.08.2003, 16:05.

      Kommentar


      • #4
        hmm wo wird den im query $Bild ein wert zugewiesen ???

        lösche mal das query oben komplett

        und ersetze den "copy part" mit dem hier

        PHP-Code:
        if (empty($err)) {
            
        $query "INSERT INTO ".$prefix."_news (id, top, title, writer, date, preview_news, news, pic, Bild) VALUES ('','$top','$title','$writer','$time','$pnews','$news','$pic','$name')";
            echo 
        "<br><b>$query</b>";
            
        $result mysql_query$query);
            if( 
        $result){
                
        copy($tempname$uploaddir $name);
                echo 
        "Die Datei \"$name\" wurde erfolgreich hochgeladen!";
                echo 
        "<br><br>URL: <b><a href="http://www.domain.de/news/images/" target="_blank">[url]http://www.domain.de/news/images/[/url]</a>$name</b>";
            
        }

        und sag uns mal was dann im query steht

        Kommentar


        • #5
          mmmhh.
          sorry das hatte keinen effekt!

          vielleicht können wir erstmal daran arbeiten, dass das bild hochgeladen wird, der pfad steht bereits in der datenbank.
          hab hier mal eine lösung, allerdings muss man hier erstmal das bild hochladen und anschliessend den text verfassen und umständlicherweise zum bild verlinken:

          PHP-Code:
            echo "<table width=\"100%\" cellspacing=\"2\" cellpadding=\"3\" align=\"center\" border=\"0\">";
                 echo 
          "<tr><td align=\"left\" style=\"background-image:url(images/verl.gif)\" colspan=\"3\" >Bilddatei hochladen</td></tr>";
                 echo 
          "<tr><td><div align=\"left\">";
             if (empty(
          $act)) {
               echo 
          "<form enctype=\"multipart/form-data\" action=\"$PHP_SELF?p=newsadd&act=upload\" method=\"post\">";
               echo 
          "<input name=\"file\" type=\"file\"><br><br><input type=\"submit\" value=\"hochladen\"></form>";
             } else {

               
          $uploaddir realpath("../images/")."/";
               
          $tempname $_FILES['file']['tmp_name'];
               
          $name $_FILES['file']['name'];
               
          $type $_FILES['file']['type'];
               
          $size $_FILES['file']['size'];

               if (
          $type != "image/gif" && $type != "image/pjpeg")
                 
          $err[] = "Es dürfen nur JPEG oder GIF Dateien hochgeladen werden.";

               if (
          $size "30000") {
                 
          $size $size 1024;
                 
          $size round($size,0);
                   
          $err[] = "Die Datei \"$name\" ist zu groß!<br><br>Dateigröße: $size KB<br>Maximale Dateigröße: 30 KB!";
               }

               if (empty(
          $err)) {
                 
          copy($tempname$uploaddir $name);
                   echo 
          "Die Datei \"$name\" wurde erfolgreich hochgeladen!";
                   echo 
          "<br><br>URL: <b>[url]http://www.deinedomain.de/images/[/url]$name</b>";
               }

               else {
                 foreach(
          $err as $error)
                 echo 
          "$error<br>";
                 }
              }
              echo 
          "</div></td></tr></table>"










          gruss
          microbe
          Zuletzt geändert von microbe; 07.08.2003, 11:17.

          Kommentar

          Lädt...
          X