2011-09-15 26 views
2

私たちはクライアントのソーシャルサイト(クラスの最終プロジェクト)を作っており、写真のアップロード機能が必要です。アップロードされた写真情報をデータベースに保存する際のガイドライン

私たちは、写真の一意のIDとユーザーIDの外部キーを使って、MySQLデータベースのリンクを画像に配置することを考えました。

しかし、私は何が最も安全な方法であろうと思っていました。

  1. 画像の名前を保持するか、名前を変更する必要がありますか?
  2. すべての画像を同じフォルダに保存するか、または一意のユーザーIDごとに別のフォルダを作成する必要がありますか。
  3. 画像の名前を変更する場合は、画像の一意のIDで始める必要がありますか? (XXXXへ1)

安全:悪質なファイル名で 最速explointingのいずれかのタイプ:アップロードした画像の場合は、その後XXXXXフォルダ

+1

私はユーザーディレクトリを作成し、イメージ名は変更しません。そうすれば、写真を直接ダウンロードしたり閲覧したりするときに、意味のある名前が付けられます。 – feeela

+1

あなたは安全で何を意味するのかを説明する必要があります。 – Mikk

+0

私はそれを編集しました! 。 – Insecurefarm

答えて

2

1つのフォルダを持っているが、私はそうユーザID-IMAGEIDに画像の名前を変更しますイメージは123-5554.jpgという名前になります。これは、ユーザーIDでグループ化し、ソートを使って同じフォルダに保存し、各イメージに一意の名前を付けます。

イメージの名前を変更しないと、誰かがpicture.jpgというイメージを複数回簡単にアップロードできます。

+0

またはイメージ名の末尾にimageidを追加して、意味のある名前(もしあれば)を@feeelaが示唆するようにします – thegaffney

+0

これは最高のawnser atmと思われます – Insecurefarm

+0

わかりやすい名前が必要な場合でも@Vincent Matte画像の場合は、フォームの画像アップロードフィールドとともに画像記述フィールドを追加するだけで、データベースの画像テーブルの画像記述フィールドを粗くすることができます。あなたは100人の人に「私の家」の写真を呼んでもらうことができますが、それぞれの画像にはまだ一意のファイル名があります。 – thegaffney

0

各写真のファイル名を一意のものに変更します。それぞれの画像はテーブル内に一意のIDを持つ必要があります。次に、ピクチャの一意のIDの外部キーをユーザーのIDに設定できます。

あなたの2番目の質問は、好みの種類のもので、希望する構造の種類によって異なります。私は各ユーザーごとに別々のフォルダを作成し、より直感的で多くのデータがあればナビゲートするのが少し簡単です。

+0

同じユーザーが自分の写真からpicture.jpgをアップロードし、picture.jpgを自分の写真からアップロードした場合、それらは異なる画像になりますか?これは古い画像を上書きするか、画像がサーバーフォルダに既に存在するかどうかをテストして、ユーザーがそのことを知らせないようにして、パーソナルコンピュータ上の画像の名前を変更するように指示する必要があります。 – thegaffney

+0

ウェブサイトから私にlocalyという名前をつけてもらうと本当に不愉快に感じます – Insecurefarm

関連する問題