nik: PHP-Mysql Datei upload in Datenbank

Beitrag lesen

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