Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo!

Ist es möglich Dateien in einer MYSQL-Datenbank zu speichern, und diese dann mit select auszulesen????

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

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

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

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

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

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

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;

};

?>

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

Ich kenn mich mit My-SQL nicht so gut aus, aber was ist mit dem Zeichsatz? Ich schätz mal damit du die Sonderzeichen (Zeilenumbruch, etc.) mitspeichern kannst, musst du einen entsprechenden Zeichensatz laden. Ist nur ne Vermutung...

Gruß, Axl

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.