web-dev-qa-db-ja.com

phpMyAdminでBlobのコンテンツを表示する

Noob Questionで申し訳ありませんが、丸で囲まれたボタンは何を意味し、blobのコンテンツを表示するにはどうすればよいですか? alt text
(ソース: rigel222.com

35
Joshua

phpmyadminの以前のバージョンには、という設定がありました

$cfg['ShowBlob']              = TRUE;

それにより、ブラウザでBLOBのコンテンツを表示できます。バイナリファイルをblobに保存すると、ブラウザウィンドウに無限のgobblygokが表示されるため、これにより混乱が生じることに注意してください。私のように、アプリケーションがテキストを格納するためにBLOB型を使用する必要があると判断した人もいます(当時は良い決断のように思えました。私が思い出したように、決断につながった私の考えがありました)。ただし、phpmyadminは、この構成設定を非推奨にすることでこれを阻止することにしました。これを行うと、かなりのサポート要求が発生する可能性があるため、理解できます。どうやら考えは、人々をTEXTフィールドタイプの上に移動させることでした。

BLOBのコンテンツを喜んで表示する機能が、構成ではなくユーザーインターフェイスに移動しました。

閲覧中にブロブの内容を表示する最も簡単な方法は、リンクをクリックすることです。

+オプション

幸いなことに、スクリーンショットでは、上部の画像の上部に+オプションが既に表示されています。

これにより、ブロブ(およびバイナリ)を表示できるフォームが表示されます。それをクリックすると、選択したセッションに追加され、それ以降のコンテンツが表示されるようになります。

印刷ビューを使用して同じ結果を取得することもできます。

ビューの印刷(全文付き)

これはページの下部にあります。

悲しいことに、頻繁にリセットされるように見えるため、BLOBを常に表示したい場合、これらの手法は両方とも役に立ちません。これを修正するには、次の行を追加します

$_GET['display_blob'] = true;

Sql.phpファイルの先頭。私はこれを行うためのより良い方法があるかもしれないと思う、そして私は他の誰かがそれを育てることを願っています...

(注:ロドリゴが指摘したように、&display_bob=true URL

[ファイルの選択]ボタンに関する具体的な質問は簡単です。 BLOBのほとんどの用途は、データベースにデジタルファイルを保存するためです。このボタンを使用すると、データベースに新しいファイルをアップロードできます。ファイルを選択して「実行」をクリックすると、そのファイルの内容がblob列に詰め込まれます。

ただ、BLOBの内容を表示するだけでは、他のユーザーが望んでいることではないことに注意してください。このオプションを使用してBLOBを表示する前に「BLOBサマリ」を見ると、最大55バイトのBLOBサイズが表示されます。非常に小さなテキストファイルを保存しているように見えるため、サンプルの値は大きくなります。サイズが数十キロバイトよりも大きい場合、おそらくgooblegokを表示するだけのバイナリファイルです。

バイナリファイルを(テキストとして表示するのではなく)インテリジェントにダウンロードする場合は、phpmyadminがblobstreamingと呼ぶものを調べる必要があると思います。

33
ftrotter

&display_blob=trueはURLの末尾にあります。

16
Rodrigo

リンクをtxtファイルとして保存

PhpMyAdminを右クリックし、リンクをtxtファイル拡張子として保存して、blobテキストファイルタイプを表示できます。

3
Bill

新規訪問者の場合、BLOB列を表示する別の方法は、 QUOTE() 関数です。便宜上、そこからビューを作成できます。 (ビューはテーブルのように動作しますが、実際には保存されたクエリの一種です):

CREATE VIEW log_text AS SELECT BlobID, FileName, CAST(QUOTE(Content) AS CHAR) FROM log;

QUOTE(binary)はまだバイナリであるため、結果をCHARとしてキャストする必要があります。 QUOTEはsupra-ASCII文字ではなく制御文字のみを変換するため、これは(@ftrotterが言うように)混乱を引き起こす可能性があります。

enter image description here

カオスを減らすには、 HEX() を使用します。

3
Bob Stein

最善の解決策はこの行を変更することだと思います:

 $ cfg ['Servers'] [$ i] ['extension'] = 'mysql'; 

これに:

 $ cfg ['Servers'] [$ i] ['extension'] = 'mysqli'; 

Mysqli拡張を使用できる場合は、それを使用します。より安全で、少し最適化されており、デフォルトでBLOBタイプのutf-8をより適切に処理します。 [BLOB]エントリは、他の特別な構成オプションを追加することなく、値として表示されるはずです。

2
cwd

[ファイルの選択]ダイアログでは、ワークステーション上のファイルを選択して、この行のblob列内にアップロードできます。

BLOBにJPEGまたはPNG画像が含まれている場合、実際にサムネイルをクリックするとサムネイル全体が表示され、サムネイルをクリックすると完全な画像が表示されます。 https://phpmyadmin.readthedocs.org/en/latest/transformations.html を参照してください。

1
Marc Delisle

これをconfig.inc.phpに追加して、とても助けてくれました

# Show BLOB data on table browse pages.  Hack to hardcode all requests.
$_REQUEST['display_blob'] = true;
0
Demodave