Frage

Ich versuche, ein BLOB in einer MySQL-Tabelle über Kohana ORM-Bibliothek zu erstellen und abrufen.

Der Code sieht so etwas wie:

$attachment = new Attachment_Model();
$attachment->name = $info['FileName'];
$attachment->size = strlen($info['Data']);
$attachment->data = $info['Data'];
$attachment->mime_type = $info['content-type'];
$attachment->save();

Ich habe festgestellt, dass die Daten an diesem Punkt in Ordnung ist, indem sie es in eine Datei ausgeben. Allerdings, wenn ich die Daten abrufen kommt es heraus beschädigt. Ich habe es geschaffen, das ist ein bisschen mehr nach unten zu verengen - Ich habe das MySQL-Abfrage-Tool verwendet, um die Daten zu extrahieren, wie in der Datenbank gespeichert und ich kann bestätigen, dass die Daten in der Datenbank beschädigt ist, so dass das Problem auf der INSERT sein muss .

Auch eingegeben die Dateien sind nicht immer korrupt - kleinere Dateien (zB Bilder) sind in der Regel in Ordnung sein

.

Wer irgendwelche Ideen?

War es hilfreich?

Lösung

Es stellt sich heraus, dass in diesem Fall habe ich die BLOB-Datentyp wurde mit.

Der BLOB-Datentyp kürzt Daten bei 65.535 Zeichen (leise, ohne einen Fehler zu werfen!)

Ich habe es auf einen MEDIUMBLOB upped (die eine maximale Länge von 16.777.215 Zeichen haben), und es scheint gut zu funktionieren!

Andere Tipps

Wilde Vermutung, aber:. Wahrscheinlich, weil die kohana Modell Schicht fügt alle Daten als Zeichendaten statt binär, was Ihnen Probleme verursacht beim Speichern / BLOB-Objekte abrufen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top