WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 20.12.2005, 10:47   #1
spöppi
Newbie
 
Registriert seit: 20.12.2005
Alter: 49
Beiträge: 7


Standard Binärdaten in einer MySQL-Tabell speichern und ausgeben

Hallo Leute,
ich möchte eine Datei (z.B. WORD) in einer mysql Tabelle speichern. In die Tabelle bringe ich die Daten auch, nur kann ich sie nicht mehr auslesen.
Beim aufrufen erkenne ich zwar das es z.B ein Word Dokument bzw. ist auch der Name richtig, aber die Größe stimmt nicht bzw. kann sie auch nicht geöffnet werden.

// meine Tabelle

CREATE TABLE `anhang` (
`id` int(11) NOT NULL auto_increment,
`dateiname` varchar(225) collate latin1_general_ci NOT NULL default '',
`dateigroesse` int(11) NOT NULL default '0',
`dateityp` varchar(225) collate latin1_general_ci NOT NULL default '',
`daten` mediumblob NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=15 ;


// eingabe Befehl

$data = addslashes(fread(fopen($_FILES['anhang']['tmp_name'], "r+"), $_FILES['anhang']['size']));

$query="INSERT INTO anhang (dateiname,dateigroesse,dateityp,daten) ".
"VALUES ('".$_FILES['anhang']['name']."', '".$_FILES['anhang']['size']."', '".$_FILES['anhang']['type']."', '".$data."')";

$result=mysql_query($query);
// eingabe zelle
<th> appendix:</th><td colspan="3"><input type="file" id="anhang" name="anhang" size="80"/> </td>


// ausgabe script

$SQL = "SELECT dateiname, dateigroesse, dateityp, daten FROM anhang WHERE id=$id";
$ResultPointer = mysql_query($SQL, $dbh);
$Result=mysql_fetch_object($ResultPointer);

header("Content-type: ".$Result->dateityp);
header("Content-length: ".$Result->dateigroesse);
header("Content-Disposition: attachment; filename=".$Result->dateiname);
echo $data->Daten;

Ich hoffe ihr könnt mir dabei helfen.
Danke
spöppi ist offline   Mit Zitat antworten
Alt 20.12.2005, 11:28   #2
helios
Veteran
 
Registriert seit: 21.06.2001
Beiträge: 343


helios eine Nachricht über ICQ schicken
Standard

wie gross ist denn die datei nach dem herunterladen? die variable max_allowed_packet bestimmt die maximale grösse.
____________________________________
religion is a virus from outer space
helios ist offline   Mit Zitat antworten
Alt 20.12.2005, 12:01   #3
spöppi
Newbie
 
Registriert seit: 20.12.2005
Alter: 49
Beiträge: 7


Standard

Zitat:
Original geschrieben von helios
wie gross ist denn die datei nach dem herunterladen? die variable max_allowed_packet bestimmt die maximale grösse.
Nach dem herunterladen ist die Datei immer 1KB groß.

Wo müsste ich die Variable max_allowed_packet einsetzen???

Danke
spöppi ist offline   Mit Zitat antworten
Alt 20.12.2005, 15:24   #4
spöppi
Newbie
 
Registriert seit: 20.12.2005
Alter: 49
Beiträge: 7


Standard

hallo,
ich habe ein bisschen was umgeschrieben dadurch erkenne ich jetzt die größe der Datei richtig und kann diese auch öffnen.
NUR wird der Inhalt nicht richtig dargestellt.

die neue Version:

Eingabe:


PHP-Quellcode:

<?php
$data = mysql_real_escape_string(fread(fopen($_FILES['anhang']['tmp_name'], "rb"), $_FILES['anhang']['size']));
$dateiname = mysql_real_escape_string($_FILES['anhang']['name']);
$dateigroesse = mysql_real_escape_string($_FILES['anhang']['size']);
$dateityp = mysql_real_escape_string($_FILES['anhang']['type']);

$query="INSERT INTO anhang (dateiname,dateigroesse,dateityp,daten) ".
"VALUES ('".$dateiname."', '".$dateigroesse."', '".$dateityp."', '".$data."')";

$result=mysql_query($query);
$datei_id= mysql_insert_id();
?>


Ausgabe:


PHP-Quellcode:

<?php
$SQL = "SELECT dateiname, dateigroesse, dateityp, daten FROM anhang WHERE id=$id";
$ResultPointer = mysql_query($SQL, $dbh);
$Result=mysql_fetch_object($ResultPointer);

header("Content-type: ".$Result->dateityp);
header("Content-length: ".$Result->dateigroesse);
header("Content-Disposition: attachment; filename=".$Result->dateiname);
echo $Result->daten;
?>


wenn ich eine Excel Datei verwende schaut der Inhalt so aus:

Tabelle3Œ1+ÁÁ`iüT  Suhner Type
spöppi ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:33 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag