Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как можно Записать Файл в сессию
 
 автор: Dinya_1   (05.04.2011 в 22:36)   письмо автору
 
 

Что подразумевается под словами «запись файла в сессию»
Запись только имени файла, или же все таки всего файла целиком?

Если Пишу так:
$_SESSION['foto'] = $_FILES["foto"]["name"]; 

в сессию заносится только имя файла.
И нужно еще в довесок копирывать файл во временную папку
if(copy($_FILES["foto"]["tmp_name"], "../img/temp/".$_FILES["foto"]["name"]))

из которой потом удалять, но если польз.вдруг прервал действия и файл не успел удалиться то пойдет накопление…

Подскажите пожалуйста как правильно реализовать запись файла в сессию.?

  Ответить  
 
 автор: cheops   (05.04.2011 в 22:57)   письмо автору
 
   для: Dinya_1   (05.04.2011 в 22:36)
 

>Что подразумевается под словами «запись файла в сессию»
Это от контекста зависит, в сессию пишут информацию, чтобы обойти несессионность HTTP или для того, чтобы воспользоваться сессией как кэшем, чтобы ускорить операции.

>Запись только имени файла, или же все таки всего файла целиком?
Если файл текстовый, то возможно имеет смысл его помещать целиком, если речь идет об изображении - смысла помещать его туда нет, так как при отображении его придется сохранять на диск, да и сама сессия хранится на диске, поэтому получится просто двойная работа.

>Подскажите пожалуйста как правильно реализовать запись файла в сессию.?
А какова цель этой операции (просто не уверен, что предложу эффективное решение, так как не очень понимаю, чего нужно достичь)?

  Ответить  
 
 автор: Dinya_1   (05.04.2011 в 23:23)   письмо автору
 
   для: cheops   (05.04.2011 в 22:57)
 

>Если файл текстовый, то возможно имеет смысл его помещать целиком, если речь идет об изображении - смысла помещать его туда нет, так как при отображении его придется сохранять на диск, да и сама сессия хранится на диске, поэтому получится просто двойная работа.
Тогда Наверное следует записывать только название, а сам файл во временную папку. (в этом моменте знаю как делать)

>А какова цель этой операции (просто не уверен, что предложу эффективное решение, так как не очень понимаю, чего нужно достичь)?
Цель: В случае не правельного заполнения формы, возвращать её же пользователю с ранее заполненными полями(на куках), если польз. перед ошибкой успел занести фото, то в место Инпута для файла показывать изображение, и рядом ссылочку (изменить фото).

P/s Часто польз.в попыхах после возврата формы не замечает, отстутствие указанного пути в поле инпут (у меня это поле не является обязательным для заполнения.), и получается не хорошо....

  Ответить  
 
 автор: psychomc   (06.04.2011 в 00:17)   письмо автору
 
   для: Dinya_1   (05.04.2011 в 23:23)
 

может быть, стоит подумать о том, чтобы сделать необходимые проверки на стороне клиента ?(допустим не дать отправить форму с выбранным изображением пока не будет заполнено обязательное поле)

  Ответить  
 
 автор: cheops   (06.04.2011 в 01:10)   письмо автору
 
   для: Dinya_1   (05.04.2011 в 23:23)
 

В общем, конечно, можно кэшировать изображение, но это операция вряд ли будет очень частой, а сама процедура записи в базу данных или на диск гораздо более дорогая, чем любой SELECT-запрос. В общем хуже не будет (если не возрастает сложность кода), но какой-то большой пользы ожидать не следует.

  Ответить  
 
 автор: Dinya_1   (06.04.2011 в 07:43)   письмо автору
 
   для: cheops   (06.04.2011 в 01:10)
 

А может возможно как то запомнить путь до файла на стороне клиента (тот который указывается при выборе, в "input type='file'") ?

  Ответить  
 
 автор: cheops   (06.04.2011 в 10:04)   письмо автору
 
   для: Dinya_1   (06.04.2011 в 07:43)
 

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

  Ответить  
 
 автор: Dinya_1   (06.04.2011 в 22:11)   письмо автору
 
   для: cheops   (06.04.2011 в 10:04)
 

Спасибо.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования