1

ファイルをデータベースに保存する方法を見つけようとしています。データベースではなくファイル システムにファイルを保存することをお勧めしますが、私が取り組んでいる仕事では、データベースを使用してこれらの画像 (ファイル) を保存することを強く望んでいます。

いくつかの制約もあります。私は管理者ユーザーではなく、すべてのコマンドを実行するストアド プロシージャを作成する必要があります。これまでのところ、それほど困難ではありませんでしたが、私の人生では、ファイル (画像) をデータベースに保存する方法を確立することはできません。

BULK コマンドを使用しようとすると、「バルク ロード ステートメントを使用する権限がありません」というエラーが表示されます。バルク ユーティリティは、ファイルをデータベースにアップロードする簡単な方法のように思えましたが、アクセス許可がない場合は回避策を考え出す必要があります。

ファイルアップロード入力タイプの HTML フォームを使用し、PHP で処理することにしました。PHP はストアド プロシージャを呼び出し、ファイルの内容を渡します。問題は、パラメータの最大長が 128 文字に制限されていることです。

今、私は完全に立ち往生しています。一括コマンドを使用する権限がなく、SP に渡すことができるパラメーターの最大長は 128 文字のようです。

バイナリ文字とASCII文字がうまく混ざらないので、問題が発生することを期待していましたが、行き止まりです...

ありがとう

4

2 に答える 2

1

通常、SQL ではバイナリ データを渡しません。ファイルをサーバーにアップロードし、サーバーから画像をデータベースにロードします。

イメージをファイルからデータベースにロードします。

UPDATE images
SET image = LOAD_FILE('images/myimage.jpg')
WHERE image_id = 1234

イメージをファイルに戻します。

SELECT image
INTO DUMPFILE 'images/myimage.jpg'
FROM images
WHERE image_id = 1234
于 2010-03-17T22:47:37.520 に答える
0

これは、David Hayden のブログで見つけた例です。

これは ac# の例ですが、手順は PHP でも同様です。

  1. アップロードしたファイルをバイト配列に変換します
  2. サーバー上で動的 TSQL を実行する
于 2010-03-16T16:55:02.957 に答える