1

私はシンプルなCMSを構築しており、ログイン、編集ページなどがあります.

独自の CMS を構築した方は、ユーザーがアップロードした画像を alt タグでどのように保存していますか?

データベース内のファイル名/パスとaltタグもありますか?

次に、画像を書き出すときにIDを取得し、画像として機能するphpページを作成しますか?

例えば: <?php include image.php?id=1; ?>

image.php 出力:

get id
connect to db
echo '<img src="nameofimageandextension" alt="alttag">';

それとも、それは良い考えではないでしょうか?

4

3 に答える 3

3

名前と代替テキストを保存するのが最善の解決策のようです。次に、パスを静的、つまり、/user/uploadまたは同様のものになるように構成できます。

必要に応じて画像をphp経由でルーティングして、代替テキストが表示されるようにする必要があります。

  <img src="<?php echo $imagePath . $imageNameFromDB; ?>" alt="<?php echo $imageAltFromDB; ?>"/>
于 2012-11-12T10:07:03.483 に答える
2

このようなテーブル(またはユーザーテーブルの拡張)を作成する際の問題はどこにありますか?

+----+----------------+------------------+
| id | name           | alt_tag          |
+----+----------------+------------------+
|  1 | myimage.png    | My image         |
|  2 | otherimage.jpg | Some other image |
+----+----------------+------------------+

そして、次のようにアクセスします。

$query = "SELECT name, alt_tag FROM images WHERE id = ?";
$params = array( 1 );

$path = "http://mysite.com/path/to/image/";

$stmt = $db->prepare( $query );
$stmt->execute( $params );
$row = $stmt->fetchAll( PDO::FETCH_ASSOC );

echo '<img src="{$path.$row[name]}" alt="{$row[alt_tag]}" title="{$row[alt_tag]}" />';

これが最もクリーンで簡単な (最善の? ) 方法だと思います。

そして、2番目の質問に答えるには:

画像をどのように保護するかにもよりますが、通常はいいえ、実際の画像リンクを表示する方が良いでしょう。キャプチャやその他の画像myimage.php?id=1でない限り、すべての画像をスタイルとしてユーザーに見せたくありません。 画像の URL として PHP を使用すると、ブラウザのキャッシュが台無しになるため、ユーザーはサイトにアクセスするたびにサイト全体をロードする必要があります。one time use only

ユーザーやサーバー トラフィックにとって好ましくない。

于 2012-11-12T10:18:17.363 に答える
0

パスは、 resources/myimage.png のようにデータベースに保存するものです。しかし、それを機能させるには、それをデータベース mysql as-- resources に挿入する必要があります。myimage.png 私はこのようにしています --->

$upload_path = 'リソース/'; // ファイルがアップロードされる場所 (現在は「files」ディレクトリ)。$filename = $_FILES['userfile']['name']; // ファイルの名前を取得します (ファイル拡張子を含む)。$ext = substr($filename, strpos($filename,'.'), strlen($filename)-1); // ファイル名から拡張子を取得します。$avatar = $upload_path . $ファイル名; // ここに鍵があります。両方の var と、それらの間の dot= your /(スラッシュ) を割り当てます。次に、次のようなクエリを使用して挿入するときにサニタイズしてチェックします-- mysql_query('update users set avatar=" '.$avatar.' " where id= and that.

于 2012-11-12T10:22:49.773 に答える