Проблемы использования переменных сессий для хранения массивов больших файлов

Zo

Новичок
Проблемы использования переменных сессий для хранения массивов больших файлов

Хочу создать анкету! Данные хочу поместить в БД! Данных много, начиная от текстовых данных и заканчивая файлами и картинками!
По умолчанию, анонимный пользователь имеет доступ только на создание и выборку!
Соответственно, хотелось бы чтобы во время заполнения анкеты можно было удалять к примеру прикрепленную некорректную картинку или файл!
Если помещать данные сразу в таблицы БД, то возникает парочка проблем:
1. добавлять то в базу аноним может, а удалять-то нет ..
2. Кроме того, вдруг пользователь передумает заполнять анкету => нужен полный сабмит данных

Если перекидывать файлы в темп-папку, а после сабмита помещать в БД и удалять из темпа, то файлы от незаконченных по разным причинам анкет будет много, а отследить их будет невозможно! Я так думаю!

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

Попробывал забить в переменную сессии массив! Сработало!

Представьте если в этом массиве будут хранится n-ное количество больших рисунков (размер не известен, размер зависит от пользователя) и соответствующие им рисунки для просмотра и он будет помещен как переменная сессии!
Какие изменения произойдут при использовании данного метода работы? Что станет лучше? А что (скорее так и будет) хуже? как использование данной технологии (использование массивов рисунков или файлов как переменных сессии) повлияет на производительность?- вот главный вопрос недели! :)
Есть ли альтернатива с вашей точки зрения?
 

Zo

Новичок
Есть ли альтернатива? И в чем они заключаются?
 

svetasmirnova

маленький монстрик
Если перекидывать файлы в темп-папку, а после сабмита помещать в БД и удалять из темпа, то файлы от незаконченных по разным причинам анкет будет много, а отследить их будет невозможно! Я так думаю!
Ну почему же? По крону запускать скрипт, который всё будет чистить.
Представьте если в этом массиве будут хранится n-ное количество больших рисунков
Ты хранишь в массиве бинарные данные?
 

Zo

Новичок
Автор оригинала: svetasmirnova
Ну почему же? По крону запускать скрипт, который всё будет чистить.

Ты хранишь в массиве бинарные данные?
Крон может не понравится хостинг-провайдеру! :)

В массиве я пока ничего не храню, потому что решил узнать ваши ответы. Предполагается хранить
для бинарного файла:
его размер, тип, сам бинарный файл, исходное имя, комментарий.
В другом массиве для изоражений:
тип, изображение, изображение_для_просмотра, комментарий.
 

svetasmirnova

маленький монстрик
>Крон может не понравится хостинг-провайдеру! :)
:) Если провайдеру не нравится крон, то провайдер не нравится мне.
В любом случае можно хоть в каждом скрипте после выполнениия ставить ignore_user_abort() и чистить по мере необходимости.
Предполагается хранить
для бинарного файла:
его размер, тип, сам бинарный файл, исходное имя, комментарий.
Ухты. Я бы не стала хранить бинарный файл в массиве в пользу либо временных файлов; либо базы.
 

svetasmirnova

маленький монстрик
А смысл? Когда пользователь посредством формы загружает его на сервер, он хранится во временном файле. Смысл читать этот файл в переменную (элемент массива), чтобы затем этот массив сериализовать в другой же файл. Плюс я не знаю как это сериализоваться будет и не возникнет ли проблем потом.
 

Zo

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

Ну по идее же файл - это всего лишь набор 0 и 1! какая разница хранить это в одно файле или в разном!
Я понимаю твою заботу, что там могут появится левые символы или еще что-нибудь, так вот я и хочу узнать:

будут ли косячки, если запихивать файл как часть массива в переменную сессии? с точки зрения производительности чтения/записи, ну и конечно целостности?
 

svetasmirnova

маленький монстрик
А ты попробуй сериализовать бинарные данные.

-~{}~ 02.10.05 02:25:

В сессии же хранятся именно сериализованные объекты

-~{}~ 02.10.05 02:27:

Вообще проблем с подчисткой временного нет: можно спец. директорию для них выделить и т.п.
 

tolst

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