ホームページ  >  記事  >  バックエンド開発  >  画像表示の問題

画像表示の問題

WBOY
WBOYオリジナル
2016-06-23 13:16:27846ブラウズ

写真とビデオファイルを含む 3 つのファイル A、B、C をアップロードする機能を実装したいと考えています。写真は直接表示できますが、動画は表示できないため、ページ上に表示する必要があります。画像ファイルの場合は元の画像を表示し、動画ファイルの場合は表示します。 B の図。これを実現する方法はありますか?
私が考えているのは、1010のバイナリ形式で保存されているかどうかを判断することが可能かどうかということです。


ディスカッションに返信(解決策)

HTML にメディア リソースを出力できるタグがあることを思い出しました。d8e2720730be5ddc9c2a3782839e8eb6 このタグは問題ありません

動画も保存する必要がありますバイナリ? ? ? ?

HTML にメディアリソースを出力できるタグがあることを思い出しました、d8e2720730be5ddc9c2a3782839e8eb6 このタグが使用できます




現在主に A、B、C で、1 は写真、2 はビデオである可能性があります。 3 は写真、1 はビデオ、2 と 3 は写真、またはすべて写真である可能性があります。まず、どれがビデオであるかを判断してから、それにマークを付ける必要があります。何かお勧めできる方法はありますか?

ビデオもバイナリ形式で保存する必要がありますか? ? ? ?




ビデオをバイナリで保存する必要があるわけではありません。なぜなら、ABC が 3 つのファイルのうち、どれが写真でどれがビデオであるかがまだ不明であるためです。たとえば、次のような場合です。動画の場合は i=1、写真の場合は i=0 として、i の値を 1001 などの文字列として保存します。このように保存する方法を思い出せません

アップロードされます$_FILES のファイル タイプ。 。それに基づいて判断してください

$_FILES にアップロードされるファイルの種類があります。 。それを基準に判断してください



何を基準に判断するかはわかっています、私が尋ねるべきことは、たとえばファイルが 3 つ、動画であれば 1 つ、動画でなければ 1 つだと思います。 0 の場合、このように 101 という 1 つの String にするにはどうすればよいでしょうか?

簡単な方法は、JSON として保存することです。ファイル タイプまたはフラグはファイル パスに対応します。

簡単な方法は、JSON として保存し、ファイル タイプまたはフラグはファイル パスに対応します。



主に現在発生している問題は、たとえば、3 つのファイルが同時にアップロードされた場合、3 つのファイルのアドレスが「,」で区切られ、データベース内の同じフィールドに配置されることです。 3つのファイルを対応して保存するフィールドを作成する必要があります。 ファイルタイプ
動画はhtml5のvideoタグを使用して表示できます。

各アップロードは、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 番目の配列の値を取得するだけです
あなたの問題のキーはまったくありません本館の説明は...



ははは、実は以前私が遭遇した問題はそれをデータベースに保存する方法でした、そしてそれを自分で解決したところ、2つの等しい配列が読み取られることがわかりました!ページボリストは使用できません!あなたが言及した方法はピアツーピアデータをボリュームアップすることができますか?




何を言っているのかよくわかりませんが、アップロード+表示だけだと言うなら、ファイルの種類は取得できているので、表示は問題ないはずです

ファイルは取得できています。このとき、画像はimgタグを使っているが、動画はimgタグを使って表示することができないなど、判断して別のタグを使って表示する方法を教えてください。この問題を解決するには、 img_url 配列と is_video 配列のキーが対応しているだけです。最初の配列をループし、そのキーを使用して 2 番目の配列から値を取得します。問題のキーはまったくありません。本館には...


大まかな例はありますか? Volist の要件に適応するには、このようにデータを整理する必要があります
Array (

Array (
'IMG_URL' = & GT; ' => 1
) array (
'img_url' => 'http:// .../uploads/news/20160216/145586969431.mov '、'is_video' =>Volist の要件に適応するには、このようにデータを整理する必要があります

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)

'連絡先' => 文字列 '12345678912' (長さ=11)
'コメント' => 文字列 'haha' (長さ=6)
'住所' =>州' (長さ=36)
'img_url' => 文字列 'http://.../uploads/news/20160216/1455586975903.mov;http://.../uploads/news/20160216/1455586969431。 mov;http://.../uploads/news/ 20160216/1455586952114.jpg' (length=212)
'is_video' => string '1;1;0' (length=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        ))



これ、最初から Jason 形式を使用できれば、このような手間は省けるのですが?
データ項目を文字列に接続して保存すること自体が失敗です

データ項目を文字列に接続して保存すること自体が失敗です


では、どのような方法をとるべきですか私はそれを保存するために使用しますか?
3 つの URL、自然に 3 レコードとして保存されます

3 つの URL、自然に 3 レコードとして保存されます


データベースに保存するとどうなりますか? 3 つの URL は同じ人物によって所有されています。どのように対処すればよいでしょうか?
もちろん、ホスト ID も同時に保存する必要があります

もちろん、ホスト ID も同時に保存する必要があります


この場合、テーブルを 2 つ用意する必要がありますか?コンテンツと URL を保存するための 1 つは?
ある方が提出したものには他の情報も含まれているため、同じ記録に入れたいと思います。 また、URL にビデオや写真があるため、ファイルの種類を判断してテンプレート内のタグを選択する唯一の方法ですか?

データベースのパラダイムによれば、次のようになります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。