<!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>
$(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); } });
<?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(' '); ?>
Source: https://habr.com/ru/post/136694/