HTML部分 var path = '/'; function resetUpFileTips(){$('.dragfile').removeClass('dragover');$('.dragfile h3').text('请将文件拖入此区域');$('#adUpFileModal .upload-error').addClass('hide');$('#adUpFileModal .multiple-error').addCla
var path = '/'; function resetUpFileTips(){ $('.dragfile').removeClass('dragover'); $('.dragfile h3').text('请将文件拖入此区域'); $('#adUpFileModal .upload-error').addClass('hide'); $('#adUpFileModal .multiple-error').addClass('hide'); } function startUpFileTips(){ $('.dragfile').addClass('dragover'); $('.dragfile h3').text('请将鼠标松开完成上传'); $('#adUpFileModal .upload-error').addClass('hide'); $('#adUpFileModal .multiple-error').addClass('hide'); } var dragfile = document.getElementById('dragfile'); //获得到框体 dragfile.addEventListener("drop",function(e) { //拖后放开 e.preventDefault(); var fileList = e.dataTransfer.files; //获取文件对象 if(fileList.length == 0){ startUpFileTips(); return; }else if(fileList.length != 1){ $('#adUpFileModal .multiple-error').removeClass('hide'); }else{ var xhr = new XMLHttpRequest(); xhr.upload.addEventListener("progress", function (e) { if (e.lengthComputable){ $('#adUpFileModal .progress-bar').css('width',(e.loaded / e.total) * 100 + "%"); } }); xhr.open("post", "upload.html", true); xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest"); //xhr.setRequestHeader("Content-Type", "multipart/form-data"); var fd = new FormData(); fd.append('file', fileList[0]); fd.append('path', path); xhr.onreadystatechange = function(data) { if (xhr.readyState === 4) { if (xhr.status == 200) { var json = $.parseJSON(xhr.responseText); if(json.status == 1){ $('#adUpFileModal .alert-success').removeClass('hide'); setTimeout(function(){ $('#adUpFileModal .alert-success').addClass('hide'); $('#adUpFileModal').modal('hide'); resetUpFileTips(); location.reload(); },2000); } } } } xhr.send(fd); } }); $('.dragfile').on({ dragleave: function(e) { //拖离 e.preventDefault(); resetUpFileTips(); }, dragenter: function(e) { //拖进 e.preventDefault(); startUpFileTips(); }, dragover: function(e) { //拖来拖去 e.preventDefault(); startUpFileTips(); } });PHP部分
function upload(){ $basepath = $_SERVER["DOCUMENT_ROOT"]; $path = XSS($_POST['path']); if(empty($path) && !is_numeric($path)){ echo json_encode(array('status' => FALSE)); }else{ if(!empty($_FILES["file"])){ $status = move_uploaded_file($_FILES["file"]["tmp_name"], $basepath . $path . '/'. $_FILES["file"]["name"]); if($status){ echo json_encode(array('status' => TRUE)); }else{ echo json_encode(array('status' => FALSE)); } }else{ echo json_encode(array('status' => FALSE)); } } }也许需要对后缀名文件大小进行判断,可利用以下部分代码
$extensions = array("gif", "jpeg", "jpg", "png",'bmp'); if(is_array($_FILES["files"]["name"])){ foreach($_FILES["files"]["name"] as $name){ $extension = explode(".", $name); $extension = strtolower(end($extension)); if(!in_array($extension,$extensions)){ echo json_encode(['status' => false,message=>'不允许的文件拓展名']); return false; } } }else{ $name = $_FILES["files"]["name"]; $extension = explode(".", $name); $extension = strtolower(end($extension)); if(!in_array($extension,$extensions)){ echo json_encode(['status' => false,message=>'不允许的文件拓展名']); return false; } } if(is_array($_FILES["files"]["size"])){ foreach($_FILES["files"]["size"] as $size){ $size = $size / 1024; // kb if($size > 4096){ echo json_encode(['status' => false,message=>'单个文件体积不能超过4MB']); return false; } } }else{ $size = $size / 1024; // kb if($size > 4096){ echo json_encode(['status' => false,message=>'单个文件体积不能超过4MB']); return false; } } // UPLOAD $images = []; if(is_array($_FILES["files"]["name"])){ foreach($_FILES["files"]["name"] as $key => $name){ $extension = explode(".", $name); $extension = end($extension); $name = date('YmdHis') . rand(1000,9999); $filename = $name . '.' .$extension; move_uploaded_file($_FILES["files"]["tmp_name"][$key], UPLOADS_PATH . '/comments/' . $filename); $images[$key]['image'] = 'http://img.558idc.com/uploadfile/comments/'.$filename; } }else{ $name = $_FILES["files"]["name"]; $extension = explode(".", $name); $extension = end($extension); $name = date('YmdHis') . rand(1000,9999); $filename = $name . '.' .$extension; move_uploaded_file($_FILES["files"]["tmp_name"], UPLOADS_PATH . '/comments/' . $filename); $images[0]['image'] = 'http://img.558idc.com/uploadfile/comments/'.$filename; }