nik: PHP-Mysql Datei upload in Datenbank

Hallo

Ich versuche seit 2 Wochen krampfhaft dateien in einer db zu speichern. Das Formular etc. hab ich alles...

Problem: wenn ich Dateien hochlade, die grösser als 1kb sind wird die datei nicht mehr angezeigt - dateien kleiner als 1kb kann ich anzeigen.

Weiss jemand von Euch an was das liegt? Muss ich irgendwo in der php.ini oder apache ändern?

Vielen Dank für Eure Mithilfe.
Nik

  1. Hello,

    Problem: wenn ich Dateien hochlade, die grösser als 1kb sind wird die datei nicht mehr angezeigt - dateien kleiner als 1kb kann ich anzeigen.

    Wie und womit zeigst Du denn die Dateien an?

    Grüße

    Tom

    1. Salut Tom

      Die Dateien zeige ich via header an.
      Nachfolgend der Code aller 3 Dateien, welche ich benutze für Upload, Auswahl und Anzeige.

      Vielen Dank.
      Gruss Nik

      //+---------------------------+
      anzeigen.php
      //+---------------------------+

      <?php
      $ID = $_GET['ID'];

      if(!$ID)
      {die('<h1>Keine Datei ausgesucht</h1>');}

      $tabellenname = "buchdateien";
      $sqlS = "SELECT ";
      $sqlS.=" datei, dateityp FROM $tabellenname";
      $sqlS.=" WHERE ID = '$ID'";

      $db_name = 'CAR';
      $db_select = @MYSQL_SELECT_DB($db_name);

      $result=@mysql_query($sqlS);
      if(mysql_num_rows($result)==1)
      {

      $data = mysql_result($result,0, 0);
      $typ = mysql_result($result,0, 1);

      $kopf="Content-type: ".$typ;
      header($kopf);
      header('Expires: Fri, 18 Jan 2000 05:30:00 GMT');
      echo $data;
      }
      else
      {
      die('<h1>Der Download ist gescheitert</h1>');
      }
      ?>

      //+---------------------------+
      list12_1.php (upload)
      //+---------------------------+
      <html><head>
      <title>Database Upload</title>
      </head><body>
      <?php
      $link = mysql_connect("localhost", '', '');
      echo $_FILES['neuedatei']['type'];
      if (isset($_POST['sent'])){
       $sent = $_POST['sent'];
       $linktext = $_POST['linktext'];
       $beschreibung = $_POST['beschreibung'];
       $kategorie = "kat";
       $neuedatei_type = $_FILES['neuedatei']['type'];
       $neuedatei = $_FILES['neuedatei']['tmp_name'];
       $neuedatei_size = $_FILES['neuedatei']['size'];
       $fehler = '';
      } else {
       $sent = '';
      }

      if($sent)
      {
      if(!is_uploaded_file($neuedatei))
      {$fehler="<br>Es wurde keine Datei hochgeladen";}
      else
      {
      //if($neuedatei_size>100000)
      //{$fehler.="<br>Die Datei ist zu groß;";}
      //if(!($neuedatei_type == 'image/pjpeg' OR $neuedatei_type == 'image/gif'))
      //{$fehler.="<br>Der Dateityp ist nicht zulässig<br>";}
      }//Ende ELSE keine Datei hochgeladen
      if(!$fehler)
      {
      //include('connect.php');
      $datei=fopen($neuedatei,'r');
      $data=addslashes(fread( $datei, $neuedatei_size));
      $tabellenname = "buchdateien";
      $sql="INSERT INTO $tabellenname (linktext, beschreibung, kategorie, dateityp, datum, datei) values ('$linktext',  '$beschreibung', '$kategorie', '$neuedatei_type', now(), '$data')";
      $db_name = 'CAR';
      $db_select = @MYSQL_SELECT_DB($db_name);
      //$result = mysql_query("SELECT * FROM selfphp_funktionen");
      if(!mysql_query($sql))
      {$fehler.="<br>Der Upload ist aufgrund eines Datenbankfehlers gescheitert, bittet versuchen Sie es später noch einmal<br>";}
      }
      if($fehler){ echo "<h2><font color=red> $fehler </font></h2>";}
      else
      {
      echo "<h2><font color=blue>Der Upload war erfolgreich</font></h2>";
      unset($linktext);
      unset($beschreibung);
      unset($kategorie);
      }
      }//Ende $sent==1
      ?>
      <h2>Eine neue Datei hochladen</h2>
      <form action='<? echo $_SERVER['PHP_SELF']; ?>' method='post' enctype='multipart/form-data'>
      <input type="hidden" name="sent" value="1">
      <p>Der Text für den Hyperlink</p>
      <input type=text name='linktext' size=50 value='<? echo $linktext; ?>'><br>
      <p>Kurzbeschreibung</p>
      <input type=text name='beschreibung' size=50 value='<? echo $beschreibung; ?>'><br>
      <p>Kategorie</p>
      <select name='kategorie' size=3>
      <option>Spanien
      <option>Logos
      <option>Comics
      <option>Urlaubsfotos
      </select>
      <p>Die Datei auswählen</p>
      <input type=file name='neuedatei' size=50><br><br>
      <input type="submit"><input type="Reset" value"Zurücksetzen">
      </form>
      </body></html>

      //+---------------------------+
      list12_6.php
      //+---------------------------+
      <html><head>
      <title>Upload in Datenbank</title>
      </head><body>
      <div align=center>
      <?php
      //require('connect.php');
      $tabellenname = "buchdateien";
      $db_name = 'CAR';
      $db_select = @MYSQL_SELECT_DB($db_name);
      $sql = "SELECT ";
      $sql.=" ID, datum, linktext, kategorie, beschreibung FROM $tabellenname";
      if($sort=="kategorie" OR $sort=="datum" OR $sort=="ID")
      {
      $sql.=" ORDER BY ";
      $sql.=$sort;
      $sql.=" DESC ";
      }

      $result=@mysql_query($sql);
      if(mysql_num_rows($result)>0)
      {
      echo "<h2>Die bisher hochgeladenen Dateien</h2>";
      echo "<h3>Sortierung</h3>";
      echo "<a href='$PHP_SELF?sort=kategorie'>Kategorie</a> - - ";
      echo "<a href='$PHP_SELF?sort=datum'>Datum</a> - - ";
      echo "<a href='$PHP_SELF?sort=ID'>ID-Nummer</a>";
      for($i=0;$i<mysql_num_rows($result);$i++)
      {
      echo "<hr width=400>";
      echo "<table border=1 width=400><tr><td>";
      echo mysql_result($result,$i, 'kategorie');
      echo "</td><td align=right>";
      echo mysql_result($result,$i, 'datum');
      echo "</td></tr>";
      echo "<tr><td colspan=2>";
      echo "<a href='anzeigen.php?ID=";
      echo mysql_result($result,$i, 'ID');
      echo "' target=_blank>";
      echo mysql_result($result,$i, 'linktext');
      echo "</a>";
      echo "</td></tr>";
      echo "<tr><td colspan=2>";
      echo mysql_result($result,$i, 'beschreibung');
      echo "</td></tr>";
      echo "</table>";
      }//Ende For-Schleife
      }//Ende If(mysql_num_rows($result==1))
      else
      {
      echo "<h2>Es liegen keine Einträge in der Datenbank vor</h2>";
      }
      ?>
      </div>
      </body></html>
      //+--------------+

      Hello,

      Problem: wenn ich Dateien hochlade, die grösser als 1kb sind wird die datei nicht mehr angezeigt - dateien kleiner als 1kb kann ich anzeigen.

      Wie und womit zeigst Du denn die Dateien an?

      Grüße

      Tom