Загрузка файлов используя Ajax и jQuery

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

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

				<script type="text/javascript" src="/js/jquery-1.4.2.js"  ></script>
				<script  type="text/javascript" src="/js/ajaxupload.3.5.js"  ></script>
				

HTML кодирование.

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

				<div id="upload" >Загрузить  файл</div>
				

Для создания кнопки Вы можете использовать любые методы, создавать любые стили. Основная задача, это сделать кнопку привлекательной. Я не захотел использовать картинки и решил просто создать красивый стиль в CSS.

				#upload {
					margin:30px 200px; padding:15px;
					font-weight:bold; font-size:18px;
					font-family:Arial, Helvetica,  sans-serif;
					text-align:center;
					background:#f2f2f2;
					color:#3366cc;
					border:1px solid #ccc;
					width:150px;
					cursor:pointer !important;
					-moz-border-radius:5px;  -webkit-border-radius:5px;
			    } 
				

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

				<!—Кнопа загрузки-->
				<div id="upload" >Загрузить  файл</div><span id="status" ></span>
				<!—Загруженные файлы-->
				<ul id="files" ></ul>
				

PHP кодирование.

Для создания самого процесса загрузки, мы будем использовать PHP скрипт, который будет отображать загрузился файл или нет и выводить соответствующие сообщение. Назовем наш обработчик upload-file.php.

				$uploaddir  = '/uploads/'; /*  Папку, куда будут загружаться файлы
				$file =  $uploaddir . basename($_FILES['uploadfile']['name']);
				if  (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
					echo "Загрузка успешно выполненна";
			    } else {
					echo "Ошибка загрузки";
			    }
			    

JavaScript кодирование

И, наконец, приступаем к JavaScript кодированию. Сама библиотека Ajax выполнит самую сложную работу, Вам необходимо только вставить следующий код в HTML страницу.

				$(function(){
					var btnUpload=$('#upload');
					var status=$('#status');
					new AjaxUpload(btnUpload, {
						action:  'upload-file.php',
						//Имя  загружаемого файла
						name: 'uploadfile',
						onSubmit: function(file,  ext){
							if (! (ext  && /^(jpg|png|jpeg|gif)$/.test(ext))){
							// Проверяет правильность расширения файла 
							status.text(только JPG, PNG or GIF файлы могут быть загружены ');
							return  false;
							}
							status.text(Загрузка...');
						},
						onComplete:  function(file, response){
							//После  завершения очищается статус
							status.text('');
							//Добавляет  загруженные файлы в список
							if(response==="success") {
								$('<li></li>').appendTo('#files').html('<img  src="./uploads/'+file+'" alt="" /><br  />'+file).addClass('Удачно');
							} else{
								$('<li></li>').appendTo('#files').text(file).addClass('Ошибка');
						}
						}
					});
			    });
				

Чтобы использовать библиотеку Ajax нам не обходимо инициализировать объект загрузки и обеспечить его параметром. Первым параметром является кнопка объекта, а второй – отображение загрузки. Второй параметр принимает различный варианты, чтобы нам дать больше контроля над процессом.

Вот, что мы сделали:

1) Определили место, куда будет загружаться файл. 2) Создали скрытое имя файла, которое будет использоваться для загрузки. 3) Параметр onSubmit позволяет выполнять некоторые функции, прежде чем файл будет загружаться. 4) Параметр OnComplete выполняет действие после окончания загрузки, например мы, выводим загруженные файлы.

Если Вы хотите ограничить количество файлов, которые пользователь может загрузить, просто используйте параметр this.disable () в onSubmit или в OnComplete отключите кнопку загрузки после выполнения условия.

На этом все. Используйте с удовольствием.

Просмотров: 7738      Опубликовал: Евгений Фединчик      Дата: 31.03.2010 19:51:45
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Установка jQuery плагина - jDigiClock - Digital Clock

    jDigiClock — интересный плагин, выполненный на jQuery. Вдохновением для данного плагина стал виджет Hero Clock на HTC. Плагин может показывать цифровое время и погоду, достаточно удобно настраивается и его легко устанавливать.

    Русско-английский переводчик используя Google Ajax API

    Google предоставляет разработчикам массу возможностей для работы со своими сервисами. Как вы наверное поняли из названия поста, я буду использовать Google AJAX API. Что же это такое и для чего это нужно можно прочитать здесь и здесь. Для работы нам понадобятся: php и jQuery.

    Создаем Ajax конвертер валют

    Помимо основных функций поисковой системы Google предоставляет ещё и множество других услуг. Одна из них это калькулятор с расширенными возможностями. Как это можно использовать узнаете в этой статье.

    Красивое акордеон меню на jQuery

    В этом уроке Вы узнаете, как создать известный JavaScript аккордеон меню с самым минимальным количеством HTML, CSS, JavaScript кодом и, конечно, с красивым интерфейсом.

    Выпадающее меню с помощью jQuery

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

    Комментарии:

    • Алексей 13.03.2011 19:19:43
      Не работает. и еще куча ошибок в написании кода...
      Ответить
      • Фдуч 20.04.2011 15:22:11
        Все норм работает, просто слегка надо подшаманить код :) Автор подскажи как обрабатывать ошибки в upload-file.php, чтобы они в яваскрипте отображались или расскажи о том как можно к respons прикрутить ошибки из upload-file.php?
        Ответить
    • Стас 28.04.2011 15:13:52
      "Выполненна" с одной "н" пишется. Пистец.
      Ответить
      • Davinchi 18.11.2011 12:45:04
        Почему ответ приходит в win-1251, и как получить ответ в utf-8. Почему <> заменяются на &lg; &gt; ?
        Ответить
    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa