рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!
рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрдИ WP рдЗрдВрдЬрди рдореЗрдВ рдбреЗрд╕реНрдХрдЯреЙрдк рд╕реЗ тАЛтАЛрдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рджреЗрдЦрд╛ред рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрд╛, рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдлрд┐рд░ рдореИрдВ рдЬрдВрдЧрд▓ рдореЗрдВ рдЪрдврд╝ рдЧрдпрд╛, рдореИрдВ рд▓рдЧрднрдЧ рдЦреЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдПрдХ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?
HTML5 + jQuery + PHP рдХрд╛ рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рдЬреНрдЮрд╛рдиред
рдЕрдЪреНрдЫрд╛, рдЪрд▓реЛ рдЪрд▓рддреЗ рд╣реИрдВред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдорд┐рдиреА-рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХрд╛рдо рд▓рд┐рдЦреЗрдВрдЧреЗред
1) рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкрдиреЗ рдкреАрд╕реА (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЫрд╡рд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ) рдкрд░ рдПрдХ рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдбреНрд░реИрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдбреНрд░реИрдЧ рдПрдВрдб рдбреНрд░реЙрдк рдПрдкреАрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ)ред
2) рдЗрд╕рдХреЗ рдмрд╛рдж, рдПрдХ рдШрдЯрдирд╛ рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрд╕реНрдерд╛рдпреА рдореЗрдореЛрд░реА рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВред
3) рдЕрдЧрд▓рд╛, рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдирдИ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред XMLHttpRequest рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдореВрд▓, рд╣рдо рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ рдЕрд╕реНрдерд╛рдпреА рдореЗрдореЛрд░реА рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред
рд╢рд╛рдпрдж рдЙрдкрд░реЛрдХреНрдд рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рд░ рдХреЛрдИ рд╕рдм рдХреБрдЫ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛ред
рдЪрд▓реЛ
рдкрд╣рд┐рдпрд╛ рдХреЛ рд╕реБрджреГрдврд╝ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, jQuery
FileDrop рдкреНрд▓рдЧрдЗрди рд▓реЗ рд▓реЛред рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдордиреЗ рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛, рддрдм рдПрдХ рдЦрд╛рдореА рд╣реИ: рдпрд╣ рдкреНрд▓рдЧрдЗрди рдХреЗрд╡рд▓ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдФрд░ рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕рднреА рдкреНрд░рдореБрдЦ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рд╣рдо рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
Index.html рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ
рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <title> Drag & Drop API.</title> <link rel="stylesheet" href="css/styles.css" /> </head> <body> <div id="dropbox"> <span class="message"> </span> </div> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="js/jquery.filedrop.js"></script> <script src="js/script.js"></script> </body> </html>
рд╣рдо рдФрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ редред
рдЕрдм рд╣рдо рдЕрдкрдирд╛ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдПрдВрдЧреЗ рдЬрд┐рд╕рдореЗрдВ рд╣рдо
FileDrop рдкреНрд▓рдЧрдЗрди рдФрд░ jQuery рд▓рд╛рдЗрдмреНрд░реЗрд░реА
рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ
рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ , рд╕рд╛рде рд╣реА рдЫреЛрдЯреЗ рдкреНрд░рддрд┐рдмрдВрдз рднреА рдмрдирд╛рддреЗ рд╣реИрдВред
$(function(){ var dropbox = $('#dropbox'), message = $('.message', dropbox); dropbox.filedrop({ paramname:'pic', maxfiles: 5, maxfilesize: 2, url: 'post_file.php', uploadFinished:function(i,file,response){ $.data(file).addClass('done'); }, error: function(err, file) { switch(err) { case 'BrowserNotSupported': showMessage(' HTML5!'); break; case 'TooManyFiles': alert(' 1 5 '); break; case 'FileTooLarge': alert(file.name+' . 2.'); break; default: break; } }, beforeEach: function(file){ if(!file.type.match(/^image\//)){ alert(' !!!!'); return false; } }, uploadStarted:function(i, file, len){ createImage(file); }, progressUpdated: function(i, file, progress) { $.data(file).find('.progress').width(progress); } }); var template = '<div class="preview">'+ '<span class="imageHolder">'+ '<img />'+ '<span class="uploaded"></span>'+ '</span>'+ '<div class="progressHolder">'+ '<div class="progress"></div>'+ '</div>'+ '</div>'; function createImage(file){ var preview = $(template), image = $('img', preview); var reader = new FileReader(); image.width = 100; image.height = 100; reader.onload = function(e){ image.attr('src',e.target.result); }; reader.readAsDataURL(file); message.hide(); preview.appendTo(dropbox); $.data(file,preview); } function showMessage(msg){ message.html(msg); } });
рдареАрдХ рд╣реИ, рдЕрдм, рд╣рдо рдЕрдкрдирд╛ рдЖрд╡реЗрджрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ style.css рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдХрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд╕реНрдерд┐рдд)
рдЗрд╕ рдкрд░, рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ рднрд╛рдЧ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдкрд░ рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдЖрдЗрдП рдПрдХ рдЫреЛрдЯрд╛ php рд╣реИрдВрдбрд▓рд░ рд▓рд┐рдЦреЗрдВ:
<?php
рдпрд╣ рд╕рдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ! рдЕрдм рд╣рдо рдЕрдкрдирд╛ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рдЗрдЯ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
1) рдмрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреЗрдЬ рдЦреЛрд▓реЗрдВ

2) рдкрд╣рд▓реА рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

3) 2 рдбреА рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

4) 6 рдлрд╛рдЗрд▓реЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд╡рд╣ рд╕рдм рд╣реИред рдпрджрд┐ рд╣рдо рдЕрдкрд▓реЛрдб рдлрд╝реЛрд▓реНрдбрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдореЗрдВ рдЖрдкрдХреЛ рд╕рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдЪрд┐рддреНрд░ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред
рдпрд╣рд╛рдВ рдХреЗ рд╕реВрддреНрд░
рдбреЗрдореЛ рд╕рдВрд╕реНрдХрд░рдг
рдпрд╣рд╛рдБрдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдкреБрдирд╢реНрдЪред рдПрдХ рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдлрд╛рдЗрд▓реЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдХрд╛рдо рдЦреБрдж рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдФрд░ рдореИрдВ рд╕рд┐рд░реНрдл рд▓реЛрдбрд┐рдВрдЧ рдХрд╛ рдПрдХ рдирдпрд╛ рддрд░реАрдХрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред