upload файлов на аякс
22 мая 2008, 10:57
Автор: Serg_pnz
Как всё же изловчиться и передать $_FILES посредством аякс?
![]() |
|
|
burКроссбраузерно, на данный момент, это делают с помощью скрытых фреймов (а лучше ифреймов, т.к. фреймами уже мало кто пользуется).Удобнее будет воспользоваться какой-нибудь библиотекой, например, JsHttpRequest: http://dklab.ru/lib/JsHttpRequest/ |
22.05.2008, 15:04 Ответить |
![]() |
Serg_pnzНе-а. Я уже выбрал mootools.netА способ за сегодня придумал такой: передаю локальный путь к файлу и закачиваю его во временную папку посредством ftp_nb_put. Проверяю валидность и размер закаченного и в случае чего стираю из временной папки. С ифреймами, с swf смотрел примеры, но не смог их победить(( Да, как уже говорил, не хочу ставить вторую библиотеку. |
22.05.2008, 17:53 Ответить |
|
burТогда я не очень понял ваш вопрос.Думал что речь идет о том, как асинхронно засабмитить файлы с клиента. Как в этой задаче вам поможет локальный путь к файлу и ftp_nb_put? |
22.05.2008, 20:29 Ответить |
NO USERPIC
|
mevтоже интересовался данным вопросом в ходе работы на дипломом.использовал "The Yahoo! User Interface Library" насколько помню, наткнулся на него тут http://www.habrahabr.ru/blog/AJAX/24921.html |
22.05.2008, 21:41 Ответить |
![]() |
Serg_pnzСамих форм много. Под разные библиотеки причем. Но они или не кроссбраузерные или запчастей не хватает...Я даже под свою библиотеку нашел http://joomlicious.com/Moo.Form/ так на той странице нет пхп-файла(( Яву выложили, а пхп нет. 2bur думаю, что поможет. Но пока скрипт в разработке. Об успехах сообщу) |
23.05.2008, 08:31 Ответить |
NO USERPIC
|
rgbeastКак я понимаю, предлагается вместо метода HTTP POST загружать файлы на сервер по FTP, а затем по HTTP передавать имя загруженного файла. В таком решении могут быть сложности с безопасностью, так как злоумышленник сможет из скрипта извлечь данные для доступа по FTP. |
23.05.2008, 09:10 Ответить |
|
burНе очень удобный способ. Кроме проблем безопасности возможны проблемы:- кроссбраузерности, ведь предполагается FTP-соединения в браузере открывать, а не в специальном клиенте? - интерфейса, обычно использование FTP-загрузок плохо вписывается в работу web-приложений; |
23.05.2008, 11:10 Ответить |
![]() |
Serg_pnzПро безопасность: а что мешает положить файлик с паролями в отдельную папку и закрыть к ней доступ по "deny from all" и первой строкой написатьif (!defined("DB")) die("Illegal File Access conf"); А в скрипту будет define("DB", true); require_once("config/config.php"); Вобщем стандартный слаедовский (нюковский) подход. /*Админ, пожалуйста, сделай тег для выделения кода.*/ |
23.05.2008, 13:07 Ответить |
|
burТакой тег есть, у него такой синтаксис, например для HTML:* только без слешей, как вы понимаете. ** а кнопку скоро добавим |
23.05.2008, 14:41 Ответить |
![]() |
Serg_pnzВсё же победил загрузку, только не совсем.Сделал на http://joomlicious.com/Moo.Form/ (читай: на ифреймах), но всё же осталось одно НО! Опера не подгружает файлы больше 10кб. Даже ИЕ6 работает, а опера оперирует только микрофайлами. Второе - глюк проявляется только в инете, на локалке работает(!). Куда копать? |
09.06.2008, 10:37 Ответить |
|
burСложно сказать. Может поделитесь ссылкой, по которой можно попробовать загрузку? |
09.06.2008, 16:17 Ответить |
|
burКстати, подсмотреть upload без перезагрузки работающий кроссбраузерно можно здесь:http://files.mail.ru/ |
09.06.2008, 16:18 Ответить |
![]() |
Serg_pnzПосмотреть можно у меня на сайте http://www.ponedelnikov.net/ (необходимо зарегистрироваться, форма находится на форуме или в комментариях к новостям, файлам).Пример обязательно посмотрю. да уж больно не хочется ставить несколько библиотек. |
09.06.2008, 17:28 Ответить |
NO USERPIC
|
BiGXИспользую на сайте Мечтаю... jQuery и скрипт ajaxfileupload.js. На полную кроссбраузерность не проверял, но точно работает в IE, Opere и Mozille |
20.06.2008, 06:15 Ответить |
![]() |
Serg_pnzДумаю, что проблема в самом движке сайта, поскольку на поддомене поставил версию повыше, вроде заработало под оперой 9,5 а вот в чем дело, так и не понял((( |
20.06.2008, 10:11 Ответить |