|
|
|
| Объясните пожалуйста как сделать загрузку фото через временную папку?
Человек добавляет объявление на сайт, сразу загружает фото, они сохраняются во временной папке, после того как он нажимает кнопку добавить, фотографии переносятся в постоянную папку. А если он прекращает сеанс, не добавив объявления, то фотографии удаляются из временной папки. Как это сделать на практике? Спасибо. | |
|
|
|
|
|
|
|
для: gofree
(06.03.2012 в 19:01)
| | В сессии храните их до того как придет подтверждение добавления, а по приходу из сессии пишите в папку. В противном случае они автоматом будут удалены сборщиком мусора. | |
|
|
|
|
|
|
|
для: task
(06.03.2012 в 19:05)
| | А как можно сделать предпросмотр загруженного файла?
Ведь в tmp папке он выводится например как /home/site.ru/tmp/phpcCIOeZ | |
|
|
|
|
|
|
|
для: gOFREe
(06.03.2012 в 21:39)
| | Для ясности, смысл такой: http://www.avito.ru/additem (не реклама)
при первоначальной загрузке изображения попадают в папку site.ru/tmp_image
Я так думаю, они загружаются, и допустим ночью в 12 часов с помощью крона идет сверка с базой и файлами, если есть несовпадения, то лишнее удаляется.
Я загрузил изображение, скопировал ссылку и обновил страницу. На странице оно пропало, но по ссылке по прежнему его можно открыть. | |
|
|
|
|
|
|
|
для: gofree
(06.03.2012 в 21:57)
| | Можно и cron, что-то сверять, удалять, но зачем. Вы пишите, что вам загружается изображение, но сохранить его вы хотите только в том случае, если от пользователя придет подтверждение, не понятно почему этого не сделать сразу, ну да ладно, пусть у вас все реализовано частями.
Пользователю открывается сессия, и живет она только на время сессии, удаляясь по ее окончании. Логично же все то, что ждет своего подтверждения держать в сессии, перезаписывая в базу/папку по условию. А иначе она удаляется. Стоит ли ради такого задания глубокой ночью что-то там проверять? | |
|
|
|
|
|
|
|
для: task
(07.03.2012 в 05:02)
| | Про сессию я понял, но я же хочу сделать моментальный предпросмотр изображения, а для этого его надо загрузить на сервер. Как его потом удалить? Я делаю загрузку через аякс. | |
|
|
|
|
|
|
|
для: gOFREe
(07.03.2012 в 12:02)
| | А что вам мешает отдать для просмотра то, что вы уже получили, либо из tmp, куда происходит загрузка, либо из сессии? Для того чтобы просмотреть, совсем не обязательно куда-то помещать и давать на это ссылку, можете отдать скриптом - imagejpeg, imagepng... | |
|
|
|
|
|
|
|
для: gofree
(06.03.2012 в 19:01)
| | Ну что, так и не получается?
Трудно сказать, что в вашем случае предпросмотр, но показывать просто изображение нет смысла, пользователь и у себя его видел. Другое дело изображение в контексте чего либо. А если так, то это должен быть какой-то скрипт выдающий контент предпросмотра, вот в этом скрипте, в самом его начале, пропишите следующее:
<?php
session_start();
if(isset($_GET['prv']) {
header("Content-type: image/???");
echo $_SESSION['img'];
exit;
}
//далее основной код и вывод html
//и там где изображение прописываете
<img src="name.php?prv" />
|
Где name.php, это скрипт предпросмотра. Если происходит загрузка нескольких изображений, то записывайте их в сессию как массив, давая каждому уникальный идентификатор, который будет являться и ключом в этом массиве, и параметром для переменной prv. Таким образом покажете все. | |
|
|
|
|
|
|
|
для: task
(10.03.2012 в 14:19)
| | а какое ограничение на размер сессионных файлов? там то сериализованные данные хранятся | |
|
|
|
|
|
|
|
для: Красная_шляпа
(10.03.2012 в 17:27)
| | А какое ограничение? Только и отличие в структуре файла, а в остальном он такой же равноправный файл как и все другие. Тем более, если пользователь подтвержадает, переменные удаляются, а объявлять их лучше в конце файла (сессии). | |
|
|
|
|
|
|
|
для: task
(10.03.2012 в 17:47)
| | это понятно но парсинг файла тратится время там что-то наподобие резутата работы ф-ии serialize хранится | |
|
|
|
|
|
|
|
для: Красная_шляпа
(10.03.2012 в 17:57)
| | А зачем парсить файл? При сериализации нужна только длина переменной, но это никак не разбор файла.
К тому же, при сохранении, а потом поиске и удаленнии "пустышек", как вы приделагаете, вы возможно затратите и большее время.
А в этом случае время - это на загруку файлов, а помещение его в сессию, вы даже и не заметите. | |
|
|
|
|
|
|
|
для: task
(10.03.2012 в 18:45)
| | ясен пень | |
|
|
|
|
|
|
|
для: gofree
(06.03.2012 в 19:01)
| | загружай в таблицу добавляй название и время когда файл должен быть удален а при запуске скрипта проверяй и удаляй | |
|
|
|
|
|
|
|
для: Красная_шляпа
(10.03.2012 в 17:26)
| | Ну-ну, ради такой простой вещи, писать целый механизм... Разумно ли? | |
|
|
|