Upload in Verzeichnis, Eintrag in DB

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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
    Last edited by microbe; 06-08-2003, 15:59.

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

    Comment


    • #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
      Last edited by microbe; 06-08-2003, 16:05.

      Comment


      • #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

        Comment


        • #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
          Last edited by microbe; 07-08-2003, 11:17.

          Comment

          Working...
          X