Главная страница


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : Artem Mikhailov                      2:5020/400     25 Nov 2002  21:36:17
 To : Artem Chuprina
 Subject : Re: post files
 -------------------------------------------------------------------------------- 
 
 .ru> <slrnau4iih.fe4.ran@banquet.lan.ice.ru>
 
 From: Artem Mikhailov <artem@creatiff.ru>
 
 >KT> > думаю, что есть какая-то зацепка определить, что
 >KT> > есть что в посте. 
 
 Artem Chuprina <ran@ice.ru> wrote:
 
 >В том и фокус, что если там просто не загружен файл, то это будет "просто
 >какая-то параметра". С другой стороны, если файл не загружен, то чем это поле
 >не какая-то параметра с пустым телом?
 
 с одной стороны, действительно, ничего криминального. но у с другой,
 так как в html вывести поле с типом file с заранее определенным value
 - как может сделать любая другая "параметра" - нельзя, то становится
 невозможным писать общие классы обработки всех данных форм. не
 работает стандратная парадигма увидел/изменил/сохранил данные в форме,
 выведенной с текущими сохраненными в прошлой рабочей сессии
 значениями, если там есть тип file. 
 
 для всех остальных типов работает некий - не бейте за умные слова -
 паттерн: 
 foreach (param()) {
   if (param($_)) { mark for save... }
   else { mark for save as undef or default in rdbm... }
 }
 при попадании в этот оборот file, вне зависимости от того, храним ли
 мы ссылку или все тело аплоада в репозитарии, нам необходимо
 распараллелить процесс:
 foreach (param()) {
   if (upload($_)) { do upload, mark for save... }          (1)
   elsif (param($_)) { mark for save... }    (2)
   else { mark for save as undef or default in rdbm... }   (3)
 }
 
 и штука в том, что при "неаплоаде" мы неприменно свалимся в (3) и
 сохраним undef, default или что там у нас есть в (3) как обработчик.
 он не знает, и ему никак не сказать, что "файла нет, оставь старый
 линк|тело".  нет функции:
 (1)
 elsif (not_uploaded($_)) { leave it... } (2a)
 (3)
 
 если бы "неаплоаденный" файл автоматом бы выключался бы из param(),
 это было бы здорово. но он там есть. как undef.
 
 в принципе, можно для каждого param($_) исполнять свой запрос на
 репозитарий, если оно defined, а если оно и defined(upload($_)), то
 еще и do upload. но это опять же, имхо, тот же нелепый хак, что и про
 имена полей/параметров. делать 50 запросов вместо одного? так
 неправильно. можно, в принципе, еще напридумывать хаков, например, со
 скрытыми полями формы. но я считаю, что нужно продумать над (2a). 
 
 артем
 --- ifmail v.2.15dev5
  * Origin: WEBPlus Ltd. (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 post files   Artem Mikhailov   23 Nov 2002 00:14:21 
 Re: post files   Artem Chuprina   23 Nov 2002 14:29:03 
 Re: post files   Artem Mikhailov   23 Nov 2002 17:24:15 
 Re: post files   Konstantin Tokar   23 Nov 2002 19:11:21 
 Re: post files   Artem Mikhailov   24 Nov 2002 00:14:04 
 Re: post files   Konstantin Tokar   24 Nov 2002 01:53:33 
 Re: post files   Artem Chuprina   25 Nov 2002 20:06:03 
 Re: post files   Artem Mikhailov   25 Nov 2002 21:36:17 
 Re: post files   Artem Chuprina   26 Nov 2002 17:30:03 
 Re: post files   Andrey Sapozhnikov   26 Nov 2002 22:14:12 
 Re: post files   Konstantin Tokar   26 Nov 2002 16:26:49 
Архивное /ru.cgi.perl/20805a3d56c2.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional