質問

KohanaのORMライブラリを介してMySQLテーブルでBLOBを作成および取得しようとしています。

コードは次のようになります:

$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();

この時点でデータをファイルに出力することで問題がないことを確認しました。ただし、データを取得すると破損します。これをもう少し絞り込むことができました-データベースに保持されているデータをMySQLクエリツールを使用して抽出し、データベース内のデータが破損していることを確認できるため、INSERTに問題がある必要があります。

また、入力されたファイルが常に破損しているわけではありません-小さいファイル(画像など)でも問題はありません。

アイデアはありますか?

役に立ちましたか?

解決

この場合、BLOBデータ型を使用していたことがわかりました。

BLOBデータ型は、データを65535文字で切り捨てます(エラーをスローせずに黙って!)

MEDIUMBLOB(最大長は16777215文字)にアップグレードしましたが、うまくいくようです!

他のヒント

ワイルドな推測ですが、おそらくkohanaモデルレイヤーがすべてのデータをバイナリではなく文字データとして挿入するため、BLOBオブジェクトの保存/取得時に問題が発生する可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top