Поэтому у меня есть код обработки формы, который обрабатывает стандартные текстовые входы, а также загруженные файлы (через массив $ _FILES)
Я хочу, чтобы представление было сделано через AJAX
Будет ли сообщение jQuery (). метод все еще передает этот материал через -> $ _FILES или мне нужно сделать что-то особенное?
Ajax (как определено, используя JavaScript) не может выполнять загрузку файлов, так как JavaScript не может получить доступ к локальной файловой системе. Существуют обходные пути, которые, как представляется, используют Ajax, например iframe или использование Flash.
Охота вокруг Google, вы найдете что-то. Есть больше библиотек (например, YUI), которые объединяют это.
Чтобы загрузить файлы через Ajax, вам необходимо использовать обходной путь с использованием iframes или Flash.
Я рекомендую вам Uploadify , он использует flash для загрузки и использует jQuery. Мне нравится то, что у него много настроек, и он поставляется с хорошим стилем по умолчанию для обработки очереди. Просто следуйте инструкциям, чтобы настроить его на своем сайте.
В скрипте PHP вы получите файл в массиве $ _FILES, как если бы это была обычная подача через форму, имя по умолчанию – «Filedata», поэтому вы можете получить доступ к своему файлу через $ _FILES ['Filedata'] , Затем просто выделите ответ для запроса Ajax (JSON или XML) и выполните некоторый код JS для события Uploadify onComplete.
Вы можете попробовать использовать API загрузки файлов HTML 5, для чего потребуется перетащить файл в окно браузера. Подробнее здесь: http://www.appelsiini.net/2009/10/html5-drag-and-drop-multiple-file-upload
Кроме того, вы можете сделать то же самое с Google Gears (для чего требуется установка для IE, но по умолчанию используется в Chrome).
Можно обнаружить наличие и изящно деградировать.