3

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にあるはずです.

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

誰にもアイデアはありますか?

4

2 に答える 2

3

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

BLOB データ型は、65535 文字でデータを切り捨てます (エラーをスローすることなく、静かに!)

MEDIUMBLOB (最大長は 16777215 文字) に上げましたが、問題なく動作するようです!

于 2008-10-13T12:09:24.283 に答える
0

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

于 2008-10-13T12:05:12.667 に答える