phpbar.de logo

Mailinglisten-Archive

[php] blob

[php] blob

Reiner Kukulies reiner.kukulies_(at)_uni-koeln.de
Mon, 21 Jun 1999 16:59:37 +0100


Am 19 Jun 99, schrieb Lars Frasseck zu "[php] blob":

> wer kann mir sagen
> wie ich über ein Binary Large Object Zugriff von meiner Seite auf die
> dahinter laufende Datenbank nehemen kann. 

Was genau hast Du womit vor? Arbeitest Du auf infosoc mit MySQL? Was 
für Dateien sind das?

Im Prinzip machst Du mit BLOBs nix anderes als mit anderen Feldtypen. 
Ein File-Upload sieht im Formular etwas anders aus. Z.B.:

<FORM ACTION="<?echo $PHP_SELF?>" METHOD="POST" 
ENCTYPE="multipart/form-data">
<INPUT TYPE="File" NAME="datei" SIZE=30>
<INPUT TYPE="Submit" NAME="cmd" VALUE="Speichern">
</FORM>

Die Datei liegt anschliessend in einem temporären Verzeichnis 
(wahrscheinlich /tmp, kannst Du in der php.ini mit upload_tmp_dir 
auch einstellen). Auf die Datei kannst Du einfach über deren Namen 
(hier in $datei) zugreifen:

if (file_exists($datei)) {
  $fsize=filesize($datei);
  $datei2=addslashes(fread(fopen($datei,"r"),$fsize));
  mysql_db_query("db","update table set datei='$datei2', typ='$typ' 
where id=$id");
  unlink($datei);
}

Wenn Du auf die Datei wieder zugreiffen willst geht das über ein 
Skript. Etwa datei.php?id=5:

$d=mysql_fetch_array(mysql_db_query("db","select datei from table 
where id=$id"));
$typ=$d['typ'];
header("Content-type: $typ");
echo $d['bild'];

Wenn Du weisst, um was für einen Dateityp es sich handeln wird oder 
Du ihn ermitteln kannst, ist es sinnvoll ihn anzugeben, weil der 
Benutzer u.U. einen Viewer dafür konfiguriert hat. Ansonsten lass' 
die Stellen mit $typ weg oder frag' ihn auch im Formular ab.

Gruß, Reiner

-- 
NETZKONZEPTE - http://kukulies.de


php::bar PHP Wiki   -   Listenarchive