Zum Inhalt springen

Datei in SQL feld speichern


muhahahe

Empfohlene Beiträge

Hallo,

also grundsätzlich sollte das eigentlich mit BLOBs möglich sein, eben einfach den Dateiinhalt in die Tabelle schreiben.

Ich weiss ja nicht ob das bei deinem Projekt möglich ist, aber könntest du nicht einfach nur die Pfadangabe in die Tabelle schrieben und die Dateien dann einfach auf dem Server speichern?

Gruß, Axl

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstmal DANKE für die Infos.

Mit dem Blob funktioniert das (laut Anleitung) nur mit Bitmaps so richtig. Wenn ich z.B. eine *.Doc datei "hochlade" und dann wieder aus der Db abrufe erhalte ich ein nicht bekanntes Format.

Das mit dem Pfad speichern wollte ich eigenlich umgehen, da ich alles zentral speichern wollte (wegen doppelter Dateinamen und besserer Benutzerzuordnung).

Wär schön wenn mir da noch jemand helfen könnte.

THX

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ließ mal das hier:

16.3. Ist es sinnvoll, Bilder in einer Datenbank abzulegen?

http://www.dclp-faq.de/q/q-db-blob.html

Ich mache es immer so:

Ein upload Verzeichnis und eine Tabelle.

In die Tabelle schreibe ich Pfad, Dateiname, eindeutigeId, Größe und content-type. Die Datei wird dann unter der eindeutigen id im upload Verzeichnis gespeichert.

Wenn du beim speichern und zurückholen von Dateien unterschiede bekommst, machst du irgendwas falsch.

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Original geschrieben von muhahahe.de

Ich möchte ja keine Bilder speichern, sondern dokumente, texte, etc.

Datei ist Datei, vollkommen egal ob gif, zip, doc oder txt.

Original geschrieben von muhahahe.de

Mit der Integrität ist natürlich nicht von der Hand zu weisen, aber ich möchte das trotzdem als EINE GROSSE Datenbank haben.

Dann wirst du wohl mal den entsprechenden Code-Abschnitt posten müssen.

Hellsehen kann hier niemand. (Denke ich zumindest. ;) )

Gruß Jaraz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nagut dann hier also mein Code:

für Datei "Upload"

...

if ($submit) {

MYSQL_CONNECT("localhost","xxx","xxx");

mysql_select_db("dateiverwaltung");

$data = addslashes(fread(fopen($form_data, "r"), filesize($form_data)));

$result=MYSQL_QUERY("INSERT INTO dateien (bin_data,file_name,file_size,file_type) ".

"VALUES ('$data','$form_data_name','$form_data_size','$form_data_type')");

$id= mysql_insert_id();

print "<p>This file has the following Database ID: <b>$id</b>";

MYSQL_CLOSE();

} else {

?>

<form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">

<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000000">

<input type="file" name="form_data" size="40">

<input type="submit" name="submit" value="GO">

</form>

<?php

}

?>

...

und für den "Download":

// Syntax: xxx.php3?id=<id>

<?php

if($id) {

@MYSQL_CONNECT("localhost","xxx","xxx");

@mysql_select_db("dateiverwaltung");

$query = "select bin_data,file_type from dateien where id=$id";

$result = @MYSQL_QUERY($query);

$data = @MYSQL_RESULT($result,0,"bin_data");

$type = @MYSQL_RESULT($result,0,"file_type");

Header( "Content-type: $type");

echo $data;

};

?>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab mir die Links zu Gemüte geführt.

Ich habe Load_File probiert => bin_data feld bleibt leer;

Um die Sitzungsgrößen (php und mySQL) hab ich mich gekümmert, es passiert nix;

Ich habe mir mal den Inhalt das bin_data feldes angeschaut:

wenn ich ein bitmap speichere (mit mysqlCC), dann sieht der Inhalt wie folgt aus BM,C........ wenn ich das selbe Bitmap via php "hochlade" sieht der Inhalt so aus: BM,C\0\0\0......

Soweit ich mich erinnere ist \0 doch ein Stringende oder.

Wenn ich *txt Dateien in der Datenbank speichere, geht die Formatierung verloren.

Woran kann das liegen?????

Aber trotzdem thx @ all

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi!

Ich habe das Problem jetzt anders gelöst (Dateien werden extern gespeichert).

Das Problem bestand darin, das die Dateien mit "r" geöffnet wurden also im ASCII mode mit "rb" werden Sie im binären Modus geöffnet. Mit rb müsste es also funktionieren.

Bye und Danke

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...