10

誰かが私のウェブサイトの画像を保存する最良の方法を教えてくれますか. 私は最初の MVC Web サイトを作成しています。これらの画像にコメントを付けた画像 Web サイトから始めようと思いました..ect

画像の URL を必要とする JavaScript を使用してギャラリーに画像を表示しています。ユーザーに画像をアップロードしてもらいたいのですが、それらをサーバーに保存する最良の方法がわかりません。それらを純粋なイメージとしてサーバー上のフォルダーに保存しますか? または、SQL を使用してデータを処理するのが最善ですか? それとももっと良い方法がありますか?

ありがとう

4

2 に答える 2

13

すべての画像を画像フォルダーに保存してから、画像のパスをデータベースに保存します。たとえば、投稿を行っていて、各投稿に画像がある場合、画像をデータベースにアップロードし/webroot/images/てパスを保存でき/webroot/images/someimage.jpgます.

Web サイトに大量の画像が含まれる場合は、さらに整理した方がよいでしょう。1 つのフォルダーに何千ものファイルがあるのは良くありません。特に、何か ftp で接続しようとする場合は、もう 1 つ追加できます。投稿IDを持つフォルダー(私が言及した例では)なので、たとえば次のようになり/webroot/images/[id]/image1.jpgます。

接頭辞が常に同じである/webroot/images場合、アプリがイメージ フォルダの場所を認識していれば、ディスク領域を節約するためにデータベースで無視できますid

<img src='<?= IMAGES_FOLDER."/".$post->getId()."/".$post->getImageName() ?>' />

getImage()もちろん、それを行う関数を投稿に追加するといいでしょう。例を確認してください。

public function getImage()
{
    return IMAGES_FOLDER."/".$this->getId()."/".$this->getImageName();
}

タグは今imgよりきれいになるでしょう

<img src='<?= $post->getImage() ?>' />

PS : データベースに画像を保存することは非常に非効率的です。通常、データベースはアプリケーションのボトルネックであり、そこに画像を保存するとデータベースのサイズが大きくなり、Web サイト上の画像にアクセスするたびにヒット数が増えることは言うまでもありません。 php(または使用している言語)スクリプトを実行してその画像を提供するために必要な画像を開くと、サーバーのRAM使用量が増加します。

また、ユーザーが画像をアップロードしようとしていると述べたので、アップロードされたのと同じ名前で画像を保存しないようにしてください。特に長い名前やスペースなどを使用する名前では、物事がばかげて見えますmd5。画像名、またはランダムな文字列を生成し、それを生成するとmd5、文字列の長さが一定に保たれ、見た目がきれいになります。上書きを避けるために、画像の存在を再確認することを忘れないでください。

もちろん、私が提案したすべての名前は単なる例であり、アプリケーションに合った名前を自由に使用できます。

于 2013-06-28T11:23:21.407 に答える