Загрузка файлов используя 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 отключите кнопку загрузки после выполнения условия.
На этом все. Используйте с удовольствием.
Последние уроки категории:
Установка jQuery плагина - jDigiClock - Digital Clock
jDigiClock — интересный плагин, выполненный на jQuery. Вдохновением для данного плагина стал виджет Hero Clock на HTC. Плагин может показывать цифровое время и погоду, достаточно удобно настраивается и его легко устанавливать.
Русско-английский переводчик используя Google Ajax API
Google предоставляет разработчикам массу возможностей для работы со своими сервисами. Как вы наверное поняли из названия поста, я буду использовать Google AJAX API. Что же это такое и для чего это нужно можно прочитать здесь и здесь. Для работы нам понадобятся: php и jQuery.
Создаем Ajax конвертер валют
Помимо основных функций поисковой системы Google предоставляет ещё и множество других услуг. Одна из них это калькулятор с расширенными возможностями. Как это можно использовать узнаете в этой статье.




Комментарии:
Алексей 13.03.2011 19:19:43
Фдуч 20.04.2011 15:22:11
Стас 28.04.2011 15:13:52
Davinchi 18.11.2011 12:45:04