Bilddatei / PDF in MySQL-Datenbank speichern

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von -Franky-.

    Bilddatei / PDF in MySQL-Datenbank speichern

    Moin Moin,
    ich möchte für ein Projekt gerne Bilder und PDF-Dokumente direkt in der Datenbank speichern, damit ich genau steuern kann, wer Zugriff auf eine Datei erhält.

    Ich habe hier im Forum bereits gesucht und auch Google bemüht, aber keine Lösung gefunden, die funktionierte. Hat einer von Euch eine Idee, wie ich das umsetzen kann?
    Gibt es eine alternative Möglichkeit das ganze abzubilden?

    Die Software wird an mehreren Standorten genutzt ohne eine VPN-Verbindung zu haben, d.h. ein Netzlaufwerk würde erstmal rausfallen.

    Viele Grüße,
    Basti
    Dazu zwei Sachen: Beides kann viel Platz in der DB einnehmen, abhängig von Größe und Anzahl der Bilder/Dokumente. Aber hey, was ist heutzutage schon Speicherplatz? Und Du müsstest herausfinden, wie Du im 25 Jahre alten (?) VB6 (welche IDE verwendet man da heutzutage?) aus Bytes einen Base64String machst. Ggf. gehen ja auch Rohbytes.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Ja, hat sich erledigt. Der TE hat wohl den Sprachtag auf VB.NET geändert …
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Zunächst gebe ich @DTF recht. Es gibt aber auch Ausnahmen. Wenn ich da an unserer Fachanwendung denke, da landet alles (Bilder, Mails, PDFs, Office Dokumente u.a) in der Datenbank. An der Stelle fällt mir als erstes ein BLOB ein. Kurze Suche dazu: stackoverflow.com/questions/34…to-mysql-database-as-blob
    Mfg -Franky-
    Also wenn es unbedingt sein muss, dass die Daten in eine Datenbank müssen, dann entweder als BLOB oder Base64.

    Allerdings würde ich dir eher raten, wenn, dann die Dateien auf dem Server zu speichern und die Pfade in die Datenbank zu schreiben.
    Je größer eine Datenbank wird, desto mehr leidet die Performance darunter - zumindest ist so meine Erfahrung.

    Du könntest dir vielleicht auch alternativ etwas wie ElasticSearch anschauen, was mit sehr großen Datenmengen klarkommt.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)
    Mir wurde gesagt, "grosse" DatenbankProvider wie SqlServer oder MySql hätten mit blobs kein Problem.
    Und in Firma, mit SqlServerscheint das auch zu stimmen, zumindest hört man von unserm Db-Administrator nichts gegenteiliges.

    Aber wichtiger Hinweis von mir: Pack die Blobs in eine eigene Table - auf die von anderen Tables verwiesen wird.
    Das ermöglicht, alle Datensätze "normal" abzurufen, und zugehörige Blobs sich nur dazuholen, wenn nötig.
    (Das kriegt man natürlich auch mit Datensatz-internen Blobs hin, aber das Sql ist dann komplexer, und .Net-Code noch viel komplizierter, besonders EF)

    Ansonsten weiss ich nicht, warum man Binaries als Base64-Text speichern sollte, wo es doch den Datentyp binary gibt.
    Bei letzterem kann man sogar ohne weiteren Converter zb PictureBoxen an ein Blob-Feld binden (wenn die Blobs zB Bilder enthalten).
    Mit Sicherheit haben Base64-Strings und BLOB ihre Daseinsberechtigung in Datenbanken und es gibt sicherlich auch Vor- und Nachteile bei beiden Möglichkeiten wie hier zu lesen ist: stackoverflow.com/questions/29284266/mysql-base64-vs-blob -> und weitere Treffer im Internet. Ich würde auch, falls ich vor so einer Aufgabe stehen würde, auf BLOB für Binaries zurückgreifen.
    Mfg -Franky-