Как легко загружать файлы без отправки формы (с помощью jQuery + AJAX) - PullRequest
1 голос
/ 31 марта 2010

Итак, у меня есть некоторый код обработки форм, который обрабатывает стандартные текстовые вводы, а также загруженные файлы (через массив $ _FILES)

Я хочу, чтобы отправка выполнялась через AJAX

Будет ли сообщение jQuery (). метод все еще пропускает эти вещи через -> $ _FILES или мне нужно сделать что-то особенное?

Ответы [ 3 ]

1 голос
/ 31 марта 2010

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

Охотьтесь вокруг Google, вы найдете что-нибудьЕсть больше библиотек (например, YUI), которые объединяют это.

0 голосов
/ 31 марта 2010

Вы можете попробовать использовать API загрузки файлов HTML 5, который потребует, чтобы они перетаскивали файл в окно браузера. Подробнее здесь: http://www.appelsiini.net/2009/10/html5-drag-and-drop-multiple-file-upload

Кроме того, вы можете сделать то же самое с Google Gears (который требует установки для IE, но по умолчанию в Chrome).

Можно обнаружить присутствие любого из них и грациозно ухудшиться.

0 голосов
/ 31 марта 2010

Для загрузки файлов через Ajax вам нужно использовать обходной путь, используя iframes или Flash.

Я рекомендую вам Uploadify , он использует флэш-память для загрузки и использует jQuery. Мне нравится тот факт, что у него много настроек, и он поставляется с хорошим стилем по умолчанию для обработки очереди. Просто следуйте инструкциям, чтобы настроить его на своем сайте.

В сценарии PHP вы получите файл в массиве $ _FILES, как если бы это была обычная отправка через форму, имя по умолчанию - «Filedata», поэтому вы можете получить доступ к своему файлу через $ _FILES [' Filedata ']. Затем просто введите ответ на запрос Ajax (JSON или XML) и выполните некоторый код JS для события Uploadify 'onComplete'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...