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

Форум PHP

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

 

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

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

тема: Загрузка фото через tmp
 
 автор: gofree   (06.03.2012 в 19:01)   письмо автору
 
 

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

  Ответить  
 
 автор: task   (06.03.2012 в 19:05)   письмо автору
 
   для: gofree   (06.03.2012 в 19:01)
 

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

  Ответить  
 
 автор: gOFREe   (06.03.2012 в 21:39)   письмо автору
 
   для: task   (06.03.2012 в 19:05)
 

А как можно сделать предпросмотр загруженного файла?

Ведь в tmp папке он выводится например как /home/site.ru/tmp/phpcCIOeZ

  Ответить  
 
 автор: gofree   (06.03.2012 в 21:57)   письмо автору
 
   для: gOFREe   (06.03.2012 в 21:39)
 

Для ясности, смысл такой: http://www.avito.ru/additem (не реклама)
при первоначальной загрузке изображения попадают в папку site.ru/tmp_image

Я так думаю, они загружаются, и допустим ночью в 12 часов с помощью крона идет сверка с базой и файлами, если есть несовпадения, то лишнее удаляется.

Я загрузил изображение, скопировал ссылку и обновил страницу. На странице оно пропало, но по ссылке по прежнему его можно открыть.

  Ответить  
 
 автор: task   (07.03.2012 в 05:02)   письмо автору
 
   для: gofree   (06.03.2012 в 21:57)
 

Можно и cron, что-то сверять, удалять, но зачем. Вы пишите, что вам загружается изображение, но сохранить его вы хотите только в том случае, если от пользователя придет подтверждение, не понятно почему этого не сделать сразу, ну да ладно, пусть у вас все реализовано частями.
Пользователю открывается сессия, и живет она только на время сессии, удаляясь по ее окончании. Логично же все то, что ждет своего подтверждения держать в сессии, перезаписывая в базу/папку по условию. А иначе она удаляется. Стоит ли ради такого задания глубокой ночью что-то там проверять?

  Ответить  
 
 автор: gOFREe   (07.03.2012 в 12:02)   письмо автору
 
   для: task   (07.03.2012 в 05:02)
 

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

  Ответить  
 
 автор: task   (07.03.2012 в 12:31)   письмо автору
 
   для: gOFREe   (07.03.2012 в 12:02)
 

А что вам мешает отдать для просмотра то, что вы уже получили, либо из tmp, куда происходит загрузка, либо из сессии? Для того чтобы просмотреть, совсем не обязательно куда-то помещать и давать на это ссылку, можете отдать скриптом - imagejpeg, imagepng...

  Ответить  
 
 автор: task   (10.03.2012 в 14:19)   письмо автору
 
   для: 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. Таким образом покажете все.

  Ответить  
 
 автор: Красная_шляпа   (10.03.2012 в 17:27)   письмо автору
 
   для: task   (10.03.2012 в 14:19)
 

а какое ограничение на размер сессионных файлов? там то сериализованные данные хранятся

  Ответить  
 
 автор: task   (10.03.2012 в 17:47)   письмо автору
 
   для: Красная_шляпа   (10.03.2012 в 17:27)
 

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

  Ответить  
 
 автор: Красная_шляпа   (10.03.2012 в 17:57)   письмо автору
 
   для: task   (10.03.2012 в 17:47)
 

это понятно но парсинг файла тратится время там что-то наподобие резутата работы ф-ии serialize хранится

  Ответить  
 
 автор: task   (10.03.2012 в 18:45)   письмо автору
 
   для: Красная_шляпа   (10.03.2012 в 17:57)
 

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

  Ответить  
 
 автор: Красная_шляпа   (10.03.2012 в 19:02)   письмо автору
 
   для: task   (10.03.2012 в 18:45)
 

ясен пень

  Ответить  
 
 автор: Красная_шляпа   (10.03.2012 в 17:26)   письмо автору
 
   для: gofree   (06.03.2012 в 19:01)
 

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

  Ответить  
 
 автор: task   (10.03.2012 в 17:48)   письмо автору
 
   для: Красная_шляпа   (10.03.2012 в 17:26)
 

Ну-ну, ради такой простой вещи, писать целый механизм... Разумно ли?

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

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