HTML5 + jQuery + PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛

рдЖрдкрдХрд╛ рджрд┐рди рд╢реБрдн рд╣реЛ!

рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрдИ 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> <!--   jQuery --> <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <!--   FileDrop --> <script src="js/jquery.filedrop.js"></script> <!--      js     --> <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 //    function exit_status($str){ echo json_encode(array('status'=>$str)); exit; } function get_extension($file_name){ $ext = explode('.', $file_name); $ext = array_pop($ext); return strtolower($ext); } $upload_dir = 'uploads/'; //     $allowed_ext = array('jpg','jpeg','png','gif'); //   if(strtolower($_SERVER['REQUEST_METHOD']) != 'post'){ exit_status('     !'); } if(array_key_exists('pic',$_FILES) && $_FILES['pic']['error'] == 0 ){ $pic = $_FILES['pic']; if(!in_array(get_extension($pic['name']),$allowed_ext)){ exit_status('   : '.implode(',',$allowed_ext)); } //           ,       if(move_uploaded_file($pic['tmp_name'], $upload_dir.$pic['name'])){ exit_status('   !'); } } exit_status('    '); ?> 

рдпрд╣ рд╕рдм рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣реИ! рдЕрдм рд╣рдо рдЕрдкрдирд╛ рд╕реНрдерд╛рдиреАрдп рд╕рд░реНрд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рдЗрдЯ рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:
1) рдмрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреЗрдЬ рдЦреЛрд▓реЗрдВ

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

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

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


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

рдпрд╣рд╛рдВ рдХреЗ рд╕реВрддреНрд░
рдбреЗрдореЛ рд╕рдВрд╕реНрдХрд░рдг рдпрд╣рд╛рдБ
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

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

Source: https://habr.com/ru/post/In136694/


All Articles