скрипт загрузки изображений в php - PullRequest
0 голосов
/ 14 июля 2010

В моем приложении пользователь может создать свой фотоальбом.

Мой вопрос: как я могу загрузить изображения, относящиеся к тому идентификатору пользователя, который их загрузил?Это означает, что должны быть некоторые критерии, которые будут указывать, что эти изображения принадлежат этому пользователю.

То, что я думал, что я могу хранить изображения с именем изображения идентификатора пользователя, но в этом случае этоТрудно хранить комментарии вместе с этими изображениями.

Есть ли лучший способ?

Ответы [ 3 ]

3 голосов
/ 14 июля 2010

Часто используемое решение состоит в том, чтобы иметь два данных для каждого изображения:

  • Файл на диске, конечно же
  • И запись в базе данных


Запись в базе данных обычно будет содержать не менее:

  • Путь к изображению
  • Идентификатор пользователя, который его загрузил.

Таким образом, для каждого изображения у вас есть дополнительные данные - и вы можете использовать их для добавления поведения в ваше приложение.

Конечно, это означает, что у вас будет немного больше работы, когда пользователь загрузит изображение - но это тоже не так уж плохо и может оказаться полезным.


При необходимости вы также сможете добавить некоторые другие поля в таблицу базы данных, в которой хранятся эти данные, например:

  • Информация о пользователях, которым разрешено просматривать каждое изображение
  • Такие вещи, как размер изображения, тип содержимого, время последней модификации, ... Чтобы не приходилось пересчитывать их из файлов каждый раз, когда они необходимы
2 голосов
/ 14 июля 2010

Вы не используете базу данных?

Если нет:

Настройте базу данных для хранения пользователей, затем создайте логическое соединение между iamges и пользователями.

например

Пользователи:

|---------------------------------------
|  UserId       Username      Password |
|---------------------------------------
|     1         Robert        3j9745t3 |
|     2          Paul         03945u30 |
|---------------------------------------

Изображения:

|--------------------------------------------------
|  ImageID       UserId      Desc       ImageHash |
|-------------------------------------------------|
|     1            1        Some Desc  87ytr8d23yr|
|     2            1        Some Desc  5uty4095u40|
|-------------------------------------------------|

Затем сохраните изображения в каталоге изображений, например 87ytr8d23yr.png, и затем вы сможетеphp-запрос, например, такой:

$userid = 1;
$sql = "SELECT * FROM Images WHERE UserId = " . (int) $userid . " ORDER BY ImageID LIMIT 10";

if(false !== ($resource = mysql_query($sql)))
{
    while($imageRow = mysql_fetch_object($resource))
    {
       if(file_exists('imageDir/' . $imageRow->ImageHash . '.png'))
       {
            //Do whatever.
       }else
       {
           //Delete the row and inform the user that the picture has been deleted for some reason.
       }
    }
}

Также вам просто нужно создать таблицу комментариев и добавить ImageId, а когда пользователь комментирует изображение, просто добавьте изображение в строку комментариев, чтобы вы могли отследить его.*

0 голосов
/ 14 июля 2010

У вас есть база данных?Пользователи вошли в систему?Создайте таблицу для отслеживания изображений, включите столбец идентификатора пользователя и сохраните все изображение в базе данных или просто путь к изображению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...