[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Несколько картинок для одного пользователя
IamSmorodin
Пользователь может загружать фото, которые потом будут отображаться у него на странице. Как лучше это реализовать?




Спустя 2 минуты, 35 секунд (26.09.2008 - 11:28) vasa_c написал(а):
Организовать это можно миллионом способов и каждый из них будет лучше других по какому-то параметру.

Спустя 12 минут, 34 секунды (26.09.2008 - 11:41) IamSmorodin написал(а):
Подскажите, хотябы несколько

Спустя 1 час, 22 минуты, 26 секунд (26.09.2008 - 13:03) IceFrog написал(а):
Цитата(IamSmorodin @ 26.9.2008, 12:41) [snapback]49358[/snapback]
Подскажите, хотябы несколько


Вот допустим код отправки изображения rolleyes.gif
Код
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>


Код
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>


Теперь осталось на этой же страниц вывести список файлов которые находятся в папке upload/
Код
<?php
error_reporting(0);
$id1 = opendir("upload");
  while ($file1 = readdir($id1)) {
    if(!is_dir("uploads/".$file1)) {
      echo "<li>";
      echo "<u>";
      echo "<a href=upload/$file1 >$file1</a>";
      echo "</u><br>";
    }
  }
  ?>

Спустя 15 минут, 43 секунды (26.09.2008 - 13:19) IamSmorodin написал(а):
Спасибо. Я хотел по-другому и теперь понял, что это был бы ужасный способ smile.gif

Спустя 6 минут, 1 секунда (26.09.2008 - 13:25) IceFrog написал(а):
Цитата(IamSmorodin @ 26.9.2008, 14:19) [snapback]49370[/snapback]
Спасибо. Я хотел по-другому и теперь понял, что это был бы ужасный способ smile.gif


Ну этот способ тоже не идеален, но всё же будет полезен.

Спустя 2 минуты, 20 секунд (26.09.2008 - 13:27) IamSmorodin написал(а):
А с помощью БД, можно?

Спустя 3 минуты, 40 секунд (26.09.2008 - 13:31) IceFrog написал(а):
Цитата(IamSmorodin @ 26.9.2008, 14:27) [snapback]49372[/snapback]
А с помощью БД, можно?


легко только скрипт UPLOAD-а придётся оставить прежним, но теперь при успешном UPLOAD-e потребуется
Занести в БД ссылку на файл, а потом заместо 2-ого скрипта (поиска и вывод файлов в директории) - сделать обычный вывод из БД тэгов <img src=$row[img]> это к примеру.

Спустя 9 минут, 39 секунд (26.09.2008 - 13:41) IamSmorodin написал(а):
А вот такая вещь:
У меня есть таблица для списка пользоватей. Могу я сделать так: в ней создать поле для файла, в котором будут храниться ссылки на его фото. А потом просто извлекать их из файла. Или с точки зрения кодинга, это будет не хорошо smile.gif

Спустя 3 минуты, 13 секунд (26.09.2008 - 13:44) IceFrog написал(а):
Цитата(IamSmorodin @ 26.9.2008, 14:41) [snapback]49379[/snapback]
А вот такая вещь:
У меня есть таблица для списка пользоватей. Могу я сделать так: в ней создать поле для файла, в котором будут храниться ссылки на его фото. А потом просто извлекать их из файла. Или с точки зрения кодинга, это будет не хорошо smile.gif


можно, но при загрузке (upload), нужно будет указать постоянный id изображения (который соответствует id пользователя), затем занести в БД где пример: where id = ' ', ну а потом на странице пользователя, выводить также изображение where id = ' ', надеюсь ты понимаешь мои мысли )

Спустя 7 минут, 32 секунды (26.09.2008 - 13:51) IamSmorodin написал(а):
Понимаю smile.gif При загрузке, как я понял, нужно будет по id найти пользователя, открыть требуемый файл, добавить строку и обновить поле таблицы smile.gif

Спустя 3 дня, 22 часа, 12 минут, 47 секунд (30.09.2008 - 12:04) IamSmorodin написал(а):
Цитата(IceFrog @ 26.9.2008, 14:03) [snapback]49366[/snapback]
Цитата(IamSmorodin @ 26.9.2008, 12:41) [snapback]49358[/snapback]
Подскажите, хотябы несколько


Вот допустим код отправки изображения rolleyes.gif
Код
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>


Код
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>


Теперь осталось на этой же страниц вывести список файлов которые находятся в папке upload/
Код
<?php
error_reporting(0);
$id1 = opendir("upload");
  while ($file1 = readdir($id1)) {
    if(!is_dir("uploads/".$file1)) {
      echo "<li>";
      echo "<u>";
      echo "<a href=upload/$file1 >$file1</a>";
      echo "</u><br>";
    }
  }
  ?>




Воспользовался твоим кодом, не заработало. Переда загрузкой файла поставил echo($file), вот чего выдал:
C:\\Documents and Settings\\smorodin.ka\\Мои документы\\Мои рисунки\\1.jpg

Отчего такое может быть?

Спустя 11 минут, 14 секунд (30.09.2008 - 12:15) vasa_c написал(а):
По видимому здесь из абсолютного пути нужно вычленить имя файла и использовать именно его.

Спустя 53 минуты, 19 секунд (30.09.2008 - 13:09) IamSmorodin написал(а):
Даже если создать отдельно объект "file" и передавать его методом ПОСТ, то на выходе получается переменная с двумя слэшами. Что за беда! непонятно

Спустя 1 час, 35 минут, 8 секунд (30.09.2008 - 14:44) IamSmorodin написал(а):
А можно просто заменить символы "\\" на "/"? Как считаете?

Спустя 23 часа, 7 минут, 13 секунд (1.10.2008 - 13:51) md5 написал(а):
нахрена нужен весь путь?
basename() вас спасет

Спустя 17 часов, 43 минуты, 51 секунда (2.10.2008 - 07:35) IamSmorodin написал(а):
Цитата(md5 @ 1.10.2008, 14:51) [snapback]49834[/snapback]
нахрена нужен весь путь?
basename() вас спасет



Угу, спасибо! Помогло clapping.gif


_____________
Мой Twitter
Подписывайтесь :)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.