15 лучших jQuery плагинов для загрузки файлов


Содержание

Labdes

Загрузка файлов или картинок на сервер является довольно типичной задачей. Но прогресс не стоит на месте и поэтому сейчас конечно же хочется, чтобы загрузка файлов происходила в фоновом режиме. Как правило ранее это можно было реализовать с использованием технологии flash либо iframe. Также многие используют плагины такие как jQuery Form Plugin или Ajax File Upload Plugin или Multiple File Upload Plugin и море других. С появлением объекта FormData все стало значительно проще. FormData() позволяет составить набор данных для отправки на сервер с помощью XMLHttpRequest.

Давайте же попробуем написать свой код без всяких плагинов (ну кроме конечно фреймворка jQuery) для загрузки картинок или файлов на сервер в фоновом режиме. Вообще алгоритм наших действий будет примерно таков: заполняем поля формы данными. Поля могут быть какими угодно, и текст, и текстареа и селект и файлы. При выборе файлов, благодаря нашему коду на jQuery, эти файлы в фоновом режиме будут загружены во временную директорию на сервере, например в “tmp”. Далее при нажатии на кнопку submit формы, данные отправляются серверному скрипту, который эти данные обработает. Представим что это статьи. Переданные данные мы запишем в базу данных с уникальным id. Далее создадим в каталоге “images” директорию c уникальным номером “id” и если в папке “tmp” у нас были какие то файлы мы их скопируем в созданную папку “id” после чего очистим папку “tmp”. Резюмируя: фоном заливаем картинки в tmp, при сабмите формы данные записываем в базу, у нас появлется уникальный номер записи. Создаем папку с этим номером и перемещаем туда наши файлы. Все. В данной статье заливку в базу и копирование файлов мы рассматривать не будем. Думаю тут у каждого будет что-то свое. Мы сосредоточимся на одном – асинхронной загрузке картинок (или файлов).

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

В данной форме у нас помимо поля с файлом есть еще пара полей для примера: input=text. Т.е. перед нами обычная форма например для админки, которая представляет собой набор необходимых вам полей. Для начала если хотите можете проверить работу скрипта прописав вначале файла строки показа массива FILES:

Теперь напишем наш серверный скрипт, который будет вызываться с помощью jQuery. Его задача перекинуть залитые файлы из временной директории сервера в нашу, допустим как мы решили в “tmp”, после чего показать их.

А теперь и наш js-скрипт, который в фоновом режиме зальет наши файлы на сервер. Все волшебство будет выполнено благодаря объекту FormData(). Этот код мы допишем в конец нашего index.php перед тегом.

Ну вот вроде бы и все. Если кто-то что не понял, спрашивайте. Если у кого то будут дополнения, тоже буду рад!
Совет: если вы еще не использовали код для удаления файлов из какой-либо директории, то рекомендую для теста поменять функцию удаления rmdir на echo чтобы убедиться что будут удалены только те файлы которые вы хотите удалить. Gif прелоадеры можно взять например из моего урока Как сделать Gif анимацию. Примеры в конце статьи.

Если кому захочется добавить красоты, например прогресс бар, то для этого нам надо будет дописать несколько строк кода. В html шаблон мы добавим супер элемент из html5 – progress, а в js код, добавим несколько строк с объектом XMLHttpRequest.
И так, наш html дополнится следующим:

А в код js допишем:

Финальный результат js кода:

UPD2: Для тех кто хочет оформить прогресс бар более красиво, может посмотреть статью по оформлению элемента прогресс на css, а в этой статье можно посмотреть на вдохновляющие примеры внешнего вида прогресс бара.

Множество различных jQuery примеров , элементы CSS
и большое количество других инструментов для Вашего сайта !

Подборка самых популярных WordPress плагинов для любого сайта.

Здесь вы сможете скачать различные jQuery скрипты для любых проектов.

Бесплатно скачать CSS3 наработки с различными эффектами анимации.

Можно скачать файлы HTML5 с современными возможностями разработки.

Множество различных free PSD объектов для WEB-дизайна.

Колекция различных элементов form jQuery для вашего сайта.

Бесплатно скачать иконки для сайта в форматах PSD, PNG и так далее.

Коллекция всегда обновляющихся модальных окон на jQuery.

Разные примеры jQuery validate собраны в одном месте сайта.

Симпатичные варианты реализации ваших jQuery gallery.

Большой сборник широкоформатных и адаптивных jQuery slider`ов.

Ишите примеры реализации jQuery scroll? Это то, что вам нужно.

Красивые и динамичные всплывающие подсказки на jQuery и CSS3.

Интересные материалы на тему веб разработок, главные новости.

Подобрка плагинов Javascript, библиотек, фреймворков и т.д.

Коллекция потрясающих примеров анимации для вашего сайта.

Модернизация элементов форм, создание систем автозаполнения

Плагины для выбора и настройки даты и времени в формах

Предзагрузчики, анимация загрузки, перлоадеры и т.д.

Компоненты, содержащие в себе реализацию параллакс-эффекта.

Создание вкладок, оформление списков в удобную навигацию.

Все, что касается таблиц с данными: фильтр, сортировка и т.д.

Наработки SVG-графики и наложение на нее анимации. Просто красиво.

Отрисовка элементов на веб-странице с помощью html5 canvas.

Примеры элементов, которые реагируют при наведении на них.

Плагины для фото и видео галерей, способные приблежать контент.

Кнопки. Создание красивы и незабываемых кнопок для сайта.

Все, что касается сортировки данных на странице. Плагины html5.

Выборка данных. Множество примеров jQuery select.

Различные способы создания красивого и эффектного меню для сайта.

Дерево элементов. Построение множественных списков на странице.

Примеры объектов в трехмерном пространстве с помощью CSS3 и jQuery.

FileAPI — плагин jQuery для загрузки файлов


Скачать

Источник

jQuery плагин для работы с различными вариантам загрузки изображений, которые в последствии можно обрезать, изменять размер и так далее. В данные момент поддержка плагина приостановлена, однако свою ценность и функционал он от этого не утратил.

Смотрите также:

SEO-продвижение

Автоматическое продвижение сайта в TOP.

Если Вы нашли ошибку в тексте, пожалуйста, выделите область и нажмите Ctrl + Enter.

Последняя версия jQuery:

Небольшое руководство по тому, как скачать самую актуальную версию библиотеки jQuery, а также рекомендации по подключению скрипта.

jQuery AJAX загрузка файлов на сервер

Как загружать любые файлы, например, картинки на сервер с помощью AJAX и jQuery? Делается это довольно просто! И ниже мы все обстоятельно разберем.

В те «древние» времена, когда еще не было jQuery, а может он был, но браузеры были не так наворочены, загрузка файла на сайт с помощью AJAX была делом муторным: через всякие костыли вроде iframe. Я те время не застал, да и кому это теперь интересно. А интересно теперь другое — что сохранение файлов на сайт делается очень просто. Даже не обладающий опытом и пониманием, того как работает AJAX, вебмастер, сможет быстро разобраться что-куда. А эта статья ему в помощь. Если подкрепить эти возможности функциями WordPress, то безопасная обработка и загрузка файлов на сервер становится совсем плевым и даже интересным делом (пример с WordPress смотрите в конце статьи).

Однако, как бы все просто не было, нужно заметить, что минимальный опыт работы с файлами и базовые знания в Javascript, jQuery и PHP все же необходимы! Минимум, нужно представлять как загружаются файлы на сервер, как в общих чертах работает AJAX и хоть немного надо уметь читать и понимать код.

Описанный ниже метод довольно стабилен, и по сути опирается на Javascript объект new FormData() , базовая поддержка которого есть во всех браузерах.

Для более понятного восприятия материала, он разделен на шаги. На этом все, полетели.

AJAX Загрузка файлов: общий пример

Начинается все с наличия на сайте input поля типа file . Нет необходимости, чтобы это поле было частью формы (тега

Top5 Ajax загрузчиков файлов

Всем нравится загрузка файлов с индикацией процента загрузки, многие хотят перетягивать файлы для загрузки непосредственно в браузер, обо всем этом в сегодняшней статье.

Достаточно сложно определить очередность в Топ-5 плагинов для загрузки файлов, но я постараюсь.

SWFUpload

Достаточно прикольный загрузчик практически полностью на Flash.

Достоинства SWFUpload

  • можно сделать заведомо более красивый и анимированный интерфейс, изменяя флеш-файлы
  • во время загрузки файлов отображается скорость загрузки в мегабитах

Недостатки SWFUpload

Четвертое место место:

EXT File Upload Form

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

Многофайловый загрузчик на jQuery и Flash

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

FuncyUpload Swiff+Ajax Upload

Достаточно приятный плагин. Сам пользовался пару лет назад. Но время неумолимо движеться вперед.

Полезные плагины для сайта на jQuery

В ста­тье про jQuery мы ска­за­ли: плюс jQuery в том, что для этой биб­лио­те­ки есть пла­ги­ны на любой слу­чай. Наста­ло вре­мя это дока­зать — дарим вам под­бор­ку класс­ных и про­ве­рен­ных пла­ги­нов на все слу­чаи жиз­ни.

Цукерберг рекомендует:  Пишем простой проводник на Java

1. Slideout.js

Этот пла­гин упро­ща­ет раз­ра­бот­ку мобиль­ных веб-приложений и добав­ля­ет под­держ­ку свай­па вле­во для досту­па к меню. На сай­тах тоже мож­но исполь­зо­вать, если хоти­те сде­лать мобиль­ную вер­сию мак­си­маль­но похо­жей на про­грам­му.

Отдель­ное спа­си­бо раз­ра­бот­чи­кам за то, что этот пла­гин весит все­го 2 кило­бай­та и не тре­бу­ет ника­ких допол­ни­тель­ных над­стро­ек.

2. PhotoSwipe

Нуж­на кра­си­вая гале­рея на сайт? Ставь­те PhotoSwipe — про­ве­рен­ную гале­рею с ани­ма­ци­ей, мно­же­ством настро­ек и актив­ным сооб­ще­ством. Подой­дёт, если вам нуж­но про­сто кра­си­во раз­ме­стить фото на сай­те, что­бы их мож­но было листать, раз­во­ра­чи­вать на весь экран и начи­нать про­смотр с любой кар­тин­ки.

3. Toastr

Пла­гин для уве­дом­ле­ний на все слу­чаи жиз­ни. Настра­и­вать мож­но всё — от тек­ста сооб­ще­ния до ани­ма­ции появ­ле­ния и дли­тель­но­сти пока­за. Мож­но на сво­ём сай­те делать вид, что кто-то толь­ко что зака­зал ваш про­дукт из Буда­пешта, а кто-то дру­гой толь­ко что про­смат­ри­вал эту стра­ни­цу и тоже хотел купить. Всех такие всплы­ваш­ки бесят, но они рабо­та­ют.

4. SweetAlert


Меня­ет стан­дарт­ные бра­у­зер­ные уве­дом­ле­ния на стиль­ные и замет­ные сооб­ще­ния. Теперь про­пу­стить их будет слож­нее, а поль­зо­ва­тель сра­зу пой­мёт, что он него что-то хотят. Что­бы понять, как это рабо­та­ет, срав­ни­те два уве­дом­ле­ния: стан­дарт­ное и SweetAlert:

5. jQuery-Tabledit

Пла­гин для тех, кто рабо­та­ет с база­ми дан­ных. Напри­мер, если вы дела­е­те админ­ку для кор­по­ра­тив­но­го сай­та или веб-интерфейс для таб­лиц, то пла­гин помо­жет вам рабо­тать с поля­ми таб­ли­цы как с обыч­ны­ми поля­ми вво­да. Мож­но раз­ре­шить толь­ко про­смотр, изме­не­ние, уда­ле­ние или всё вме­сте. Про­грам­ми­сту оста­ёт­ся настро­ить пла­гин так, что­бы все изме­не­ния попа­да­ли обрат­но в базу.

6. Skrollr

Лёг­кий спо­соб сде­лать эффект парал­лак­са на стра­ни­це — исполь­зо­вать Skrollr. Парал­лакс в общем слу­чае — это когда что-то дви­жет­ся на перед­нем фоне быст­рее, чем на зад­нем или на осталь­ных. Эда­кое псевдо-3D, толь­ко при скрол­ле. Парал­лакс любят исполь­зо­вать про­из­во­ди­те­ли смарт­фо­нов на застав­ках, а с этим пла­ги­ном мож­но сде­лать в таком сти­ле целый сайт.

7. IntroJS

Удоб­ная шту­ка для созда­ния обу­ча­ю­щих сай­тов или поша­го­вых руко­водств. Она поэтап­но пока­жет все эле­мен­ты на стра­ни­це и объ­яс­нит, что они озна­ча­ют. Если нуж­но сде­лать онлайн-презентацию для заказ­чи­ка и нет вре­ме­ни объ­яс­нять — бери­те IntroJS.

8. ScrollMagic

Хит­рый пла­гин с огром­ны­ми воз­мож­но­стя­ми настро­ек. Он закреп­ля­ет какой-то эле­мент стра­ни­цы в опре­де­лён­ном месте и вклю­ча­ет ани­ма­цию в нуж­ный момент. Нуж­ный момент выби­ра­е­те вы сами, и их может быть несколь­ко на одной стра­ни­це. Посмот­ри­те при­мер, и вам ста­нет понят­но, насколь­ко крут этот пла­гин.

9. FloatLabel.js

Про­стой, но удоб­ный пла­гин: он рабо­та­ет с поля­ми вво­да и сле­дит за тем, когда вы нач­нё­те туда что-то вво­дить. Как толь­ко нач­нё­те — он дела­ет из назва­ния поля мини-заголовок и поме­ща­ет его наверх:

10. jQuery GoUp!

Самый про­стой пла­гин в обзо­ре. Кноп­ка про­сто воз­вра­ща­ет вас наверх, в самое нача­ло стра­ни­цы. Когда лень скрол­лить.

Загрузка файлов при помощи ajax, Jquery

Добрые ребята, подскажите пожалуйста хороший способ загрузки файла на сервер при помощи ajax. Буду очень благодарен.

В интернете находил варианты, но хотелось бы узнать проверенные методы.

2 ответа 2

Через AJAX не загрузить файл на сервер. Технология этого не подразумевает. То, что вы видели — лишь эмуляция ajax через сабмит формы в скрытый iframe. И в этом нет ничего плохого. Существует много плагинов для jquery например, которые сильно облегчают реализацию. Вот, например http://blueimp.github.io/jQuery-File-Upload/

AJAX и PHP: загрузка файла

Пример того как осуществить загрузку файла через PHP и jQuery ajax. Для начала необходимо создать HTML элемент для загрузки файла.

Далее необходимо дописать JS код:

Теперь приступим к PHP скрипту, где загрузим файл на сервер, upload.php:

Ну и естественно не забываем подключить библиотеку jquery. В итоге всё прекрасно работает.

50 полезных плагинов JQuery 2012 года

29 декабря 2012 | Опубликовано в Веб-дизайн | 12 Комментариев »

jQuery плагины являются одними из самых необходимых компонентов при построении сайта, да и вообще любого веб-приложения. Именно они позволяют вам расширить свой функционал. В этой статье перечислены самые полезные плагины за 2012 год. Для более удобного поиска все плагины разделены на следующие категории: Web Page Layout — плагины, плагины для навигации, Form Plugins, плагины для создания слайдеров, плагины для диаграмм и графиков, эффекты для изображений и другие. Также среди этих плагинов есть плагины, которые помогут вам в создании ваших адаптивных приложений.

Page Layout плагины

equalize.js — это плагин для jQuery, который позволяет создавать блочную структуру сайта. Он позволяет выравнивать высоту и ширину любого элемента.

Новый плагин для адаптивных макетов.Freetile позволяет создавать элементы любого размера, при этом необходимость создания фиксированного размера столбцов сетки отпадает.

Gridster.JS jquery плагин для построения drag and drop — сетки. Также с помощью него можно динамично удалять и добавлять элементы из сетки.

Zoomooz.js — это простой в использовании jQuery-плагин для увеличения любого элемента веб-страницы. Вы можете легко добавить zoom-эффект, просто добавив класс «zoomTarget» к любому HTML-элементу. Увеличение можно сбросить, кликнув на страницу. Плагин был протестирован в Internet Explorer 9, Safari 3 +, Firefox 3.6 +, Opera и Chrome.

Wookmark — плагин для создания динамичного многоколоночного шаблона.

jQuery HiddenPosition — плагин, который позволяет добавлять любой элемент, даже если он является скрытым.

Stellar.js — JQuery-плагин, который обеспечивает эффект параллакса для элементов.

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

Плагин для адаптивной типографики. Он позволяет вам использовать селектор, генерирующий идеальный размер шрифта.

Позволяет построить анимированные перемещения по сайту, включая все возможные трансформации

Плагины для навигации

HorizontalNav — это jQuery плагин, который растягивает горизонтальное меню, чтобы она соответствовала всей ширине контейнера. Если Вы когда-либо пытались создать эффект правильной натяжки меню навигации на CSS контейнер у проекта, то Вы однозначно знаете насколько это тяжело сделать для кросс-браузерной совместимости. Данный плагин делает это с легкостью.

stickyMojo – это легкий, быстрый и гибкий плагин «липучей» боковой панели на jQuery. Он работает с Firefox, Chrome, Safari и IE8 + (неплохо поддерживает старые версии IE).

ddSlick — плагин, который позволяет создавать выпадающие меню с изображениями и описаниями.

Плагин для простой организации раскрывающихся панелей. Плагин поддерживает работу с куки для хранения состояния панелей. Среди опций есть возвратные функции для настройки процесса открывания и закрывания секций.

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

Формирующие плагины

Плагин позволяет определять уровень сложности пароля.


JQuery-плагин для визуализации процесса загрузки файлов. Он поддерживает drag&drop и создает моментальные превью для фотографий.

Плагин, который определяет и проверяет номера кредитных карт. Он позволяет вам определить тип кредитной карты.

Плагин для фильтрации данных. Вы можете фильтровать данные по тегу и по нескольких тегам и категориям.

Плагин, который проверяет ввод электронной почты на правильность по заранее подготовленному списку (сюда можно включить самые популярные почтовые сервисы mail.ru, yandrex.ru, gmail и т.п. ).

Плагины для создания слайдеров и каруселей

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

iosSlider

iosSlider — плагин для адаптивного кроссбраузерного слайдера.

RSlider — полноэкраннный адаптивный слайдер. О н будет автоматически подстраиваться под ширину вашего экрана.

Fresco — адаптивный лайтбокс-плагин. Он может использоваться, чтобы создать ошеломляющие оверлейные программы, которые отлично работают на любых размерах экрана, во всех браузерах, на всех устройствах.

BookBlock — jQuery-плагин, который можно использовать для создания компонентов в виде буклетов, которые позволят вам создавать навигацию наподобие «переворачивающихся страниц». Здесь можно задействовать любой контент, будь то изображения или текст. Плагин трансформирует структуру только при необходимости (другими словами, только при переворачивании страницы) и использует наложения и тени для придания реалистичности.

Adapter — легкий слайдер контента, который предоставляет простой интерфейс разработчикам для создания красивой 2D или 3D анимации перелистывания слайдов. В настоящее время имеется поддержка 3D свойств в браузерах webkit и Firefox. Все 2D переходы были протестированы в IE6 + и других современных браузерах.

Непрерывная карусель с несколькими полезными возможностями. Она легко настраивается и поддерживает даже старые браузеры.

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

Sequence – это jQuery-плагин для прокрутки контента оригинальным образом и предоставляет вам полноценный контроль. Можно использовать любой тип контента; он будет прокручиваться бесконечно. Здесь используется семантическая разметка, а также поддерживаются адаптивные шаблоны и устройства, основанные на технологии touch.

Glisse.js — простая, адаптивная и легко настраиваемая JQuery-фото-галерея.

Плагины для диаграмм и графиков

Morris.js представляет собой облегченную библиотеку, которая использует JQuery и Raphaël, чтобы облегчить рисование графиков временных рядов.

JQuery Org Chart представляет собой плагин, который позволяет создавать древовидные структуры с вложенными элементами. Данные вводятся во вложенный неупорядоченный список, что делает плагин невероятно простым в использовании.

Плагины для типографики

Bacon.js является JQuery плагином, который позволяет обернуть текст вокруг кривой Безье или линии.

Textualizer — jQuery плагин для создания красивых эффектов над текстом. Поддерживается работа в: Chrome, Safari 4+, Firefox 3.5+, IE 6,7,8,9+, Opera 10.6+, Mobile Safari (iOS 4)

SlabText — очень полезный JQuery-плагин, который построчно разбивает заголовки перед изменением размеров каждой строки, чтобы заполнить доступное пространство по горизонтали.

trunk8 — это плагин усечения текста в JQuery. Позволяет сократить большой блок текста на меньшую часть для предварительного осмотра.

Плагины для создание различных эффектов для изображений

Это плагин для jQuery, который использует фильтры на CSS3 для создания tilt-эффекта.

Плагин для реализации эффекта адаптивных изображений.

jQuery-плагин, который позволяет легко создавать карты-изображения. С помощью этого инструмента, любая карта-изображение может быть подсвечена или выбрана, а также картой можно управлять различными способами. Он работает на всех основных браузерах, в том числе Internet Explorer 6, он не использует Flash, и не требует ничего кроме jQuery. Некоторые продвинутые эффекты требуют поддержки HTML5, но он все равно будет работать в старых браузерах.

Цукерберг рекомендует:  Css - Проблемы с css-анимацией

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

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

И другие.

Плагин для плавных трансформаций и переходов. Вместо работы с таймерами, плагин использует CSS3 трансформации.

Noty — это jQuery плагин, с помощью которого без особых проблем и сложностей можно легко на своем сайте или блоге создать уведомления типа: information, error, alert, success, warning, или просто заменить стандартные уведомления на сайте, при регистрации например. Абсолютно каждое уведомление можно настроить, чтобы оно выводилось поочередно.

JQuery-плагин позволяет легко помещать маркеры на карте сайта с помощью Google Map API V3.

Плагин, который позволяет легко добавлять интерактивные карты на вашем сайте. Вы получите мощную API карту, настраиваемые маркеры и обработчик-событий.

Jплагин, который использует Scalable Vector Graphics (SVG) для рендера векторных карт. Он работает во всех браузерах, поддержка в старых версиях IE 6-8 осуществляется через VML.

Простой в использовании JQuery плагин для социальных виджетов сетей. В настоящее время он поддерживает Facebook, Twitter и Google+.

Tooltipster представляет собой легкий и простой в стиле JQuery плагин, который поможет вам легко создавать всплывающие подсказки.

BigVideo.js — jQuery плагин, который упрощает адаптирование фонового видео на веб-страницу. Вы можете использовать одно или несколько видео или использовать плагин в качестве проигрывателя, с отображением плей-листа.

С помощью плагина calendario вы сможете для своего сайта организовать замечательный календарь, в котором будут отмечаться все вам важные материалы и праздники, которые можно с легкостью задать самостоятельно.

AJAX загрузка файлов на сервер + jQuery, IFRAME, PHP

Это очень интересная статья, о том, как загрузить файлы на сервер с помощью технологии AJAX. Как вы уже знаете, ajax это асинхронный javascript, который позволяет работать с сервером, не перезагружая страницы в браузере. Такая технология очень полезна для реализации нашей идеи: загрузить файлы на сервер не перезагружая страницы браузера. Наша идея также может быть реализована другими способами, обо всем этом читайте ниже в нашей статье.

Что мы сегодня узнаем?

Загрузка файлов на сервер на AJAX + jQuery + PHP

Реализация загрузки файлов на сервер с помощью AJAX, немного сложнее, чем просто отослать текстовый POST или GET запрос. Но не настолько сложно, чтобы понять и освоить эту методику. Если вы еще не совсем понимаете, как взаимодействуют AJAX и PHP, советую сначала прочитать статью о взаимодействии PHP и AJAX. Но, даже если вы не знаете, как работает технология AJAX, это не страшно, так как мы будем использовать библиотеку jQuery и плагин ajax_upload. И если вы будете следовать всем примерам и инструкциям шаг за шагом, то вы сможете реализовать отличный загрузчик файлов на сервер.


Суть метода: Мы создадим HTML образ загрузчика, который будет в себе содержать: файловое поле ввода, кнопку подтверждения, блок статуса загрузки (будут выводиться: «загружено» или «ошибка»), список ul (будут добавляться новые DOM элементы, другими словами это список загруженных файлов). На кнопку подтверждения мы создадим обработчик на языке JS, при этом будем использовать синтаксис jQuery, и передадим файл плагину ajax_upload, который отправит файл и все нужные данные на серверную сторону. Серверная сторона, это наше PHP приложение, которое сохранит файл в нужную папку и возвратит результат работы. Или же просто возвратит сообщение об ошибке, если что-то пойдет не так. Задание есть, приступим?

HTML код ajax загрузчика

Давайте создадим HTML файл, в котором будет каркас нашего загрузчика файлов. Приведу HTML код, потом объясню что и к чему.

Как видите, HTML код ajax загрузчика, невыносимо сложный. Но все же стоит прояснить, что и к чему:

UploadFile — это наша кнопка подтверждения загрузки файла на сервер. Далее приведу CSS код оформления.

— это блок, в который мы будем помещать ответ серверной стороны приложения. Или «Загружено», или «Ошибка».

— это список файлов, которые были загружены на сервер, нашим jquery + ajax загрузчиком.

Как и было обещано, приведу ниже CSS код стиля, кнопки подтверждения загрузки файла:

Серверная PHP сторона приложения

Как упоминалось в сущности метода, серверная сторона всего лишь выполняет копирование (сохранение) файла и возвращает результат своей работы («Загружено» или «Ошибка»). Но, это только пример, на который полагаться не стоит. Здесь нет защиты от хакерских взломов, и не установлены ограничение на размер файлов. Если у вы будете создавать загрузчик для всеобщего пользования, то обязательно реализуйте вышеперечисленные дополнения. Ниже приведен PHP код примера загрузчика файлов, создайте файл с именем upload-file.php, и поместите в него следующий код:

Если внимательно присмотреться, то заметите что здесь все написано русским текстом, а точнее:

$uploaddir – каталог на сервере, куда будут загружаться файлы.

$file – имя загружаемого файла, к которому прикрепляется путь к серверному каталогу.

Далее, если выполнено копирование файла на сервер, то выводим «Загружено» или, в случае непредвиденных проблем, выводим «Ошибка».

Самое простое уже сделано. Впереди самое интересное – jQuery + AJAX сторона загрузчика файлов.

JavaScript код

Как и в любом другом приложении, использующем JS, код должен быть помещен в шапку (head), документа. Еще одно важное замечание: перед написанием данного JS кода, не забудьте заранее подключить библиотеку jQuery и плагин ajax_upload. Если вы уже это сделали, отлично, приступим к написанию кода:

Сначала, мы инициализируем доступ к кнопке подтверждения загрузки, и записываем в переменную btnUpload. Заодно и получаем доступ к блоку серверных сообщений (status). Далее идет работа с плагином ajaxupload. Создаем новый объект и указываем нужные нам параметры:

Action – путь к нашему серверному обработчику загруженных файлов.

Name – это имя поля ввода, с которого мы будем получать загружаемый на сервер файл.

onSubmit – Функции, которые выполняются перед ajax загрузкой файлов на сервер. В нашем случае, это валидация загружаемых файлов (проверка поддерживаемых расширений). Но опять, проверка, как говорится для «недалеких», эту проверку легко обойти, поэтому стоит еще раз проверять на серверной стороне приложения.

status.text – текст, который выводится в процессе ajax загрузки файлов на сервер. Заметьте, если файлы не поддерживаемые, то выводится сообщение об ошибке.

onComplete – Запускаем функцию по завершению загрузки файла на сервер. В этой функции: очищаем значение status.text; добавляем загруженные файлы в лист files.

Как видите загрузить файлы на сервер с помощью AJAX, проще, чем казалось. Но все-таки, меня смущает наличие библиотеки jQuery в данном методе. И если вы знаете, как реализовать ajax загрузку файлов без использования jQuery, убедительная просьба сообщить в комментариях к статье.

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

Загрузка нескольких файлов на сервер на AJAX, jQuery, PHP

Если вам, для личных нужд, необходимо сделать красивую загрузку нескольких файлов на сервер с помощью AJAX и PHP, то вам придется использовать некоторые дополнения к библиотеке jQuery. А именно:

jQuery Form Plugin v2.18

Плагин для корректной ajax работы с полями и формами.

Где взять: www.malsup.com/jquery/form/

jQuery BlockUI Plugin v2.14

Плагин, позволяющий выводить красивые сообщения об ошибке.

Где взять: www.malsup.com/jquery/block/

jQuery Multiple File Upload Plugin v1.31

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

Где взять: www.fyneworks.com/jquery/multiple-file-upload/

Если вы уже скачали все эти плагины, и само собой, библиотеку jQuery, можем приступать к разработке. Также, нам необходимо создать PHP файл, как и в предыдущем примере, который будет обрабатывать данные на серверной стороне. Назовем его: doajaxfileupload.php. Теперь, поподробнее.

jQuery Form Plugin – отличный плагин, он используется для отправки файлов на сервер методом ajax. Этому плагину, можно найти и другие применения.

jQuery BlockUI Plugin – используется в эстетических целях, для вывода красивых сообщений о корректности работы плагина MultipleFileUploadPlugin.

MultipleFileUploadPlugin – этот плагин, основа нашего мульти файлового загрузчика. Он позволяет выбрать несколько файлов. При этом, он имеет гибкие настройки, для ограничения типа файлов, установки количества загружаемых файлов, проверяет файл на дубликаты (если такой файл уже выбран) и т.д.

Теперь у нас есть все что необходимо, мы можем начать разработку скрипта ajax загрузки нескольких файлов.

В файле index.php, думаю и так все понятно. Здесь находится, собственно форма загрузки файлов и подключаются библиотека jQuery и все необходимые плагины для работы с ajax. Несколько слов по коду и настройке плагинов:

Указываете расширения файлов допускаемых к загрузке, указываете максимальное количество загружаемых файлов.

Показывает и убирает анимацию при ajax загрузке файлов на сервер.

Отвечает за отправку файлов на сервер.


doajaxfileupload.php – это наша серверная сторона приложения, в нем все достаточно понятно, если вам необходимо, можете отредактировать на свой вкус.

Пожалуй, все о загрузке нескольких файлов на сервер методом AJAX, jQuery и PHP. Надеюсь, у вас все работает, также хорошо как у меня.

Загрузка файлов на JS + IFRAME + PHP

Если вы поклонник не красоты, а функциональности и компактности кода, то для вас есть хорошая новость. Загружать файлы на сервер без перезагрузки страницы, можно не только с помощью AJAX и всяких там jQuery плагинов. Также, это можно реализовать с помощью простого JavaScript, iframe (фреймов) и php (он всегда необходим). Дело в том, что на AJAX, невозможно реализовать загрузку файлов. XmlHttpRequest не способный загружать файлы. Хотя, это можно обойти. С помощью технологии Remote Scripting. В частности используя IFRAME. Интересно то, что мы будем создавать форму как при обычной загрузке файлов, только в форме мы будем указывать target=»rFrame», ссылаться на скрытый iframe, который будет перезагружен, но визуально этого не отобразиться. После перезагрузки, из серверной php стороны приложения, будет возвращен JS вызов функции, который завершит загрузку файла.

Данный загрузчик простой, состоит из двух файлов, и весит около 1 КБ. Ближе к делу. Создайте ваш HTML файл и поместите туда код:

Здесь мы видим практически те же компоненты, что и при простой загрузке файлов на сервер, только: target=»rFrame» – про который мы уже говорили выше; функция onResponse – она получает JSON объект, который мы присылаем из серверной стороны. Также, не забудьте указать multipart/form-data, без которого, форма не будет загружать файлы. Далее, посмотрим на серверный код, файла handler.php:

Цукерберг рекомендует:  4 ошибки, которые могут сорвать запуск сайта

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

Очень простой и интересный скрипт. Конечно, вы можете усовершенствовать его.

Надеюсь, у вас все работает и не выкидывает ошибок. Если вы имеете другие познания, о том, как загрузить файл на сервер с помощью AJAX, просьба, поделиться с другими в комментариях.

15 лучших jQuery плагинов для загрузки файлов

Освойте бесплатно наиболее простой, быстрый и гибкий способ создавать адаптивные веб-сайты.

Дизайн лендинга

Создавайте дизайн любых сайтов — для себя и на заказ!

Популярное

  • Главная
  • ->
  • Материалы
  • ->
  • Ajax-форма для загрузки файлов

Reg.ru: домены и хостинг

Крупнейший регистратор и хостинг-провайдер в России.

Более 2 миллионов доменных имен на обслуживании.

Продвижение, почта для домена, решения для бизнеса.

Более 700 тыс. клиентов по всему миру уже сделали свой выбор.

Бесплатный Курс «Практика HTML5 и CSS3»

Освойте бесплатно пошаговый видеокурс

по основам адаптивной верстки

на HTML5 и CSS3 с полного нуля.

Фреймворк Bootstrap: быстрая адаптивная вёрстка

Пошаговый видеокурс по основам адаптивной верстки в фреймворке Bootstrap.

Научитесь верстать просто, быстро и качественно, используя мощный и практичный инструмент.

Верстайте на заказ и получайте деньги.

Что нужно знать для создания PHP-сайтов?

Ответ здесь. Только самое важное и полезное для начинающего веб-разработчика.

Узнайте, как создавать качественные сайты на PHP всего за 2 часа и 27 минут!

Создайте свой сайт за 3 часа и 30 минут.

После просмотра данного видеокурса у Вас на компьютере будет готовый к использованию сайт, который Вы сделали сами.

Вам останется лишь наполнить его нужной информацией и изменить дизайн (по желанию).

Изучите основы HTML и CSS менее чем за 4 часа.

После просмотра данного видеокурса Вы перестанете с ужасом смотреть на HTML-код и будете понимать, как он работает.

Вы сможете создать свои первые HTML-страницы и придать им нужный вид с помощью CSS.

Бесплатный курс «Сайт на WordPress»

Хотите освоить CMS WordPress?


Получите уроки по дизайну и верстке сайта на WordPress.

Научитесь работать с темами и нарезать макет.

Бесплатный видеокурс по рисованию дизайна сайта, его верстке и установке на CMS WordPress!

Хотите изучить JavaScript, но не знаете, как подступиться?

После прохождения видеокурса Вы освоите базовые моменты работы с JavaScript.

Развеются мифы о сложности работы с этим языком, и Вы будете готовы изучать JavaScript на более серьезном уровне.

*Наведите курсор мыши для приостановки прокрутки.

Ajax-форма для загрузки файлов

В этом уроке мы будем создавать форму для загрузки файлов, работающую на Ajax, что позволит вашим посетителям загружать файлы через браузер перетаскиванием или просто выбрав их с помощью кнопки «Обзор». Для наших целей мы скомбинируем мощный плагин jQuery File Upload plugin с jQuery Knob.

HTML

Как обычно, начнём с html-разметки.

В заголовке документа между тегами head я решил подключить 2 шрифта с Google Webfonts, а до закрывающего тега body идёт некоторое количество JavaScript-библиотек. Здесь библиотеки jQuery, плагин jQuery Knob и вспомогательные «дочерние» библиотеки для jQuery File Upload plugin.

Главный элемент страницы это форма с , который поддерживает загрузку файлов методом drag’n’drop (т.е. обычным перетаскиванием) и неупорядоченный список.

В списке будут храниться элементы li для каждого из переданных файлов. Чуть ниже представлен код, отвечающий за генерацию отметки загруженного файла

Элемент ввода input в куске кода выше скрыт с помощью CSS.

Его единственное назначение — инициировать плагин jQuery Knob, который будет выводить красивую «подложку».

Тег span располагает иконку справа, — это может быть либо галочка, о том что файл успешно был загружен, либо красный крест, о том что файл не удалось загрузить.

Код jQuery

Существует 2 способа для загрузки файлов посетителями:

– с помощью перетягивания файлов в область div (поддерживается во всех браузерах, кроме IE)

– с помощью кнопки «Обзор». Это действие инициирует клик по скрытому элементу формы input, который выводит окно проводника операционной системы для загрузки файла.

Заметьте, что этот input имеет множество параметров, что позволяет, например, выделять сразу несколько файлов для загрузки (в то же время, файлы будут загружаться по очереди)

Работа плагина по умолчанию — это ставить файлы в очередь по одному, но мы сделаем автоматическую загрузку файлов, как только они будут перетянуты в область загрузки или же выбраны, что значительно упростит пользование данной формы. JS-код представлен ниже.

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

Так или иначе, т.к. нам нужен полностью настраиваемый интерфейс, мы будем использовать базовую версию плагина, которая не включает в себя никакого интерфейса. Чтобы заставить всё это работать, произведём некоторые настройки в коде, что сверху:

– dropZone — настройка, хранящая jQuery-селектор, который будет действовать, как только файл будет перетянут и «брошен». Как только файл будет «брошен» он будет поставлен в очередь загрузки.

– add — функция обратной связи, которая вызывается как только файл был поставлен в очередь. Внутри неё находится html-отметка, которая будет представлять файл, добавляться к тегу ul и запускать метод data.submit(). Это позволит загружать файл без лишних ожиданий.

– progress — эта функция обратной связи выполняется плагином каждые 100ms (настраивается). Второй аргумент (атрибут data) содержит размер файла и информацию о том, сколько байтов данных было уже передано.

– fail — эта функция обратной связи срабатывает, когда есть какие-то проблемы в PHP-скрипте.

Скорее всего, это означает, что отсутствует или не подключен файл upload.php или же в нём присутствуют какие-то ошибки (используйте ваш браузер, в режиме просмотра кода и ошибок, чтобы исправить любые потенциальные проблемы здесь).

Свойство data.context сохраняется между вызовами методов плагина. Таким образом мы узнаём, к какому элементу li нужно отнести событие процесса загрузки или событие ошибки.

PHP

Загрузчик файлов jQuery также идёт с мощным PHP-скриптом для обработки загрузок, который вы можете хранить на своём сервере, однако в этом уроке мы напишем свой собственный.

Загрузчик файлов отправляет плагину практически то же самое, что и форма загрузки — вы можете получить информацию о загрузках через массив $_FILES:

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

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

Готово! Надеюсь, вы извлекли пользу из этого урока и он вам ещё не раз пригодится.

Материал подготовил Денис Малышок специально для сайта CodeHarmony.ru

P.S. Кое-что понятно, но куда двигаться дальше? Присмотритесь к премиум-урокам по различным аспектам сайтостроения, а также к бесплатному курсу по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить веб-технологии: начиная с HTML и CSS и заканчивая JavaScript, Ajax, PHP и SQL.

Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!

Мультизагрузка файлов с использованием Uploadify.

В этой статье я рассмотрю одновременную загрузку нескольких файлов на сайт с использованием jQuery плагина Uploadify.

Для начала идём на официальный сайт Uploadify и скачиваем там его бесплатную flash версию. К сожалению HTML5 версия не бесплатна и стоит 5 долларов за стандартную лицензию и 100 долларов за коммерческую. Итак, качаем отсюда Uploadify (на момент написания это версия 3.1.1): http://www.uploadify.com/download/

Мы получаем архив с кучей файлов, распаковываем его в директорию сайта. Для удобства, в директории сайта я создал поддиректории js для JavaScript, css для листов стилей и img для картинок. Закидываем uploadify.css в css, jquery.uploadify-3.1.min.js в js, uploadify-cancel.png в img. Также я создал поддиректорию upload_photos, куда будут складываться загруженные скриптом картинки (именно на их примере я и опишу работу Uploadify).

Так как Uploadify плагин для jQuery, нам нужно скачать последнюю версию jQuery (на момент написания 1.8.0) http://jquery.com/download/ и поместить файл jquery-1.8.0.min.js в директорию js.

Теперь создадим в корне файл index.html, куда запишем следующее:

Стандартный доктайп и подключение стилей, jQuery и самого плагина.

Теперь мы должны настроить работу плагина. Ниже я опишу почти все настройки плагина и для чего они нужны:

  • swf — путь до swf загрузщика
  • uploader — скрипт, который будет обрабатывать загруженные файлы
  • auto — автоматический запуск загрузки файлов после их выбора
  • buttonText — текст на кнопке загрузки
  • cancelImg — путь до иконки отмены загрузки
  • checkExisting — путь к скрипту проверки существования такого файла на сервере
  • fileObjName — имя файлового объекта, которое передаётся на сервер
  • fileSizeLimit — максимальный размер файла в килобайтах
  • fileTypeDesc — описание для фильтра в диалоге выора файлов
  • fileTypeExts — доступные фильтры расширений в диалоге выбора файлов
  • multi — мультизагрузка
  • queueID — ID элемента-контейнера, куда будут выводиться состояние загрузки файлов
  • removeTimeout — время до удаления сообщения о прогрессе загрузки после окончания загрузки

Также я настроил реагирования на событие onUploadSuccess, которое возникает после окончания загрузки каждого фала. В данном примере оно получает вывод php скрипта и дописывает его в контейнер с ID photos.

Далее мы пишем код для кнопки, контейнера, куда будет писаться вывод и контейнера для выода прогресса загрузки. Ссылка, приведённая под ними нужна для того, что если бы мы установили параметр auto плагина в false, то для начала загрузки нужно было бы нажать на ссылку.

Всё, сам плагин настроен и теперь нужно настроить php скрипт, который примет фотографии и сохранит их.

Далее я приведу подредактированный скрипт uploadify.php из архива плагина, с улучшенной обработкой ошибок, а также файлу даётся уникальное имя, чтобы предотвратить загрузку вредоносных скриптов под видом фотографии.

В моём скрипте после загрузки фотографии для неё создаётся миниатюра, но данная тема выходит за рамки данной статьи.

Надеюсь статья оказалась полезной, вопросы можно задать в комментариях.

Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих