ホームページ >バックエンド開発 >PHPチュートリアル >画像表示の問題
写真とビデオファイルを含む 3 つのファイル A、B、C をアップロードする機能を実装したいと考えています。写真は直接表示できますが、動画は表示できないため、ページ上に表示する必要があります。画像ファイルの場合は元の画像を表示し、動画ファイルの場合は表示します。 B の図。これを実現する方法はありますか?
私が考えているのは、1010のバイナリ形式で保存されているかどうかを判断することが可能かどうかということです。
HTML にメディア リソースを出力できるタグがあることを思い出しました。d8e2720730be5ddc9c2a3782839e8eb6 このタグは問題ありません
動画も保存する必要がありますバイナリ? ? ? ?
HTML にメディアリソースを出力できるタグがあることを思い出しました、d8e2720730be5ddc9c2a3782839e8eb6 このタグが使用できます
ビデオもバイナリ形式で保存する必要がありますか? ? ? ?
アップロードされます$_FILES のファイル タイプ。 。それに基づいて判断してください
$_FILES にアップロードされるファイルの種類があります。 。それを基準に判断してください
簡単な方法は、JSON として保存することです。ファイル タイプまたはフラグはファイル パスに対応します。
簡単な方法は、JSON として保存し、ファイル タイプまたはフラグはファイル パスに対応します。
各アップロードは、Ajax またはバックグラウンドに基づいて戻り値を返し、それをセッションに入れます。最後に、3 つのファイルが送信され、バックグラウンドから値が取得されます。セッションを保存し、それぞれデータベースに保存します。もう一度セッションをクリアしてください
何を言っているのかよくわかりませんが、アップロード+表示だけならファイルの種類は取得できるので表示は問題ないはずです
意味がよくわかりません。要はアップロード+表示するだけと言われれば、ファイルの種類は取得できるので問題なく表示できるはずです。画像タグはimgタグを使用しますが、動画はimgタグを使用して表示することはできません。この問題を解決するためだけに
このようにデータを整理しました
array (size=13)
0 =>
'img_url' =>
array (size=3)
0 =&g t; /...../uploads/news/20160216/1455586975903.Mov '(長さ= 70)
2 => length=70)
'is_video' =>
配列 (size=3)
0 => 文字列 '1' (length=1)
2 => ; string '0' (length=1)
'is_video ' の値を判断して異なるラベルを選択することによって、ページ上で volist ループを実行することを考えていますが、1 対 1 を形成する方法はないようです。ループ時の対応。 。変更するにはどうすればよいですか?
何を言っているのかよくわかりませんが、アップロード+表示だけであれば、ファイルの種類は取得できるので、表示自体は問題ないはずです
ファイルは取得されています。画像は img タグを使用していますが、動画は img タグを使用して表示することはできません。この問題を解決するには、 img_url 配列と is_video 配列のキーが対応しているだけです。最初の配列をループし、そのキーを使用して 2 番目の配列から値を取得します。問題のキーはまったくありません。本館の説明は…
ファイルが取得できたので表示しています この時、画像はimgタグを使っていますが、動画はimgタグを使って表示することができないなど、タグを使い分けて判断して表示する方法です。この問題を解決するには
img_url と is_video の 2 つの配列のキーは対応しています。最初の配列をループし、そのキーを使用して 2 番目の配列の値を取得するだけです
あなたの問題のキーはまったくありません本館の説明は...
ファイルは取得できています。このとき、画像はimgタグを使っているが、動画はimgタグを使って表示することができないなど、判断して別のタグを使って表示する方法を教えてください。この問題を解決するには、 img_url 配列と is_video 配列のキーが対応しているだけです。最初の配列をループし、そのキーを使用して 2 番目の配列から値を取得します。問題のキーはまったくありません。本館には...
大まかな例はありますか? Volist の要件に適応するには、このようにデータを整理する必要があります
Array (
Array (
Array (
'IMG_URL' = & GT; ' => 1
)
array (
'img_url' => 'http:// .../uploads/news/20160216/1455586969431.mov',
'is_video' => 1 ),
array (
'img_url' ' http://.../uploads/news/20160216/1455586952114.jpg '、
'is_video'
配列 (サイズ=13)
0 =>
配列 (サイズ=10)
'id' => 文字列 '22' (長さ=2)
'ユーザー名' => 'ceshi' (長さ=5)
$a = array( 'img_url' => 'http://.../uploads/news/20160216/1455586975903.mov;http://.../uploads/news/20160216/1455586969431.mov;http://.../uploads/news/20160216/1455586952114.jpg', 'is_video' => '1;1;0',);foreach(array_map(null, explode(';', $a['img_url']), explode(';', $a['is_video'])) as $v) { $b[] = array_combine(array('img_url', 'is_video'), $v);}print_r($b);
Array( [0] => Array ( [img_url] => http://.../uploads/news/20160216/1455586975903.mov [is_video] => 1 ) [1] => Array ( [img_url] => http://.../uploads/news/20160216/1455586969431.mov [is_video] => 1 ) [2] => Array ( [img_url] => http://.../uploads/news/20160216/1455586952114.jpg [is_video] => 0 ))
$a = array( 'img_url' => 'http://.../uploads/news/20160216/1455586975903.mov;http://.../uploads/news/20160216/1455586969431.mov;http://.../uploads/news/20160216/1455586952114.jpg', 'is_video' => '1;1;0',);foreach(array_map(null, explode(';', $a['img_url']), explode(';', $a['is_video'])) as $v) { $b[] = array_combine(array('img_url', 'is_video'), $v);}print_r($b);
Array( [0] => Array ( [img_url] => http://.../uploads/news/20160216/1455586975903.mov [is_video] => 1 ) [1] => Array ( [img_url] => http://.../uploads/news/20160216/1455586969431.mov [is_video] => 1 ) [2] => Array ( [img_url] => http://.../uploads/news/20160216/1455586952114.jpg [is_video] => 0 ))
データ項目を文字列に接続して保存すること自体が失敗です
3 つの URL、自然に 3 レコードとして保存されます
もちろん、ホスト ID も同時に保存する必要があります
データベースのパラダイムによれば、次のようになります