Jump to content

Dateien in SQL Server Datenbanktabelle speichern und auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo zusammen, 

 

ich entwickle Momentan eine Webseite mit Anbindung an eine MS SQL Server Datenbank. 

In der Datenbank befindet sich eine Tabelle zum Speichern von Dateien, die auf der Webseite hochgeladen werden. 

Meine Frage: 

Hat jemand Erfahrungen damit und kann mir helfen die Download- und Upload-Funktion zu realisieren?

 

Momentaner Zustand: 

In der Tabelle befindet sich eine Spalte vom Datentypen varbinary(MAX). 

Der Upload funktioniert über ein PHP Skript, in dem eine Datei ausgelesen wird und die Binärdaten zunächst in einen Hex-Wert umgewandelt und dann mit Hilfe eines INSERTs in die DB geschrieben werden. 

Beim Download stoße ich auf Schwierigkeiten und bekomme die Datei nicht richtig ausgelesen und wieder "zusammengebaut". 

 

Geschrieben

Wie Nils schon geschrieben hat, ist es evtl. einfacher, die Dateien im Dateisystem abzulegen.

 

Falls sie in die Datenbank müssen, ist varbinary schon richtig. Du kannst die Daten als Byte-Array speichern und wieder auslesen. (Oder Du nimmst varchar und speicherst die Daten Base64-codiert, das benötigt aber ca. 30% mehr Speicher.) Pass auf, dass Du nur die reinen Daten in der varbinary-Spalte speicherst. Evtl. hast Du die Daten als Base64 vorliegen nach dem Upload.

 

Mime-Typ und Dateiname musst Du separat speichern, um die Dateien sinnvoll zum Download anbieten zu können.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...