tp5 HTML formdata 上传文件
php后端
//上传 public function upload(){ $f = addslashes(trim($_GET['filename'])); $filename = $_FILES[$f]['name']; if(empty($filename)) { echo json_encode( array( 'status' => 'fail', 'msg' => '请上传文档' ) ); exit(); } $validate_ext = tpCache('basic.image_type'); if (!empty($validate_ext)) { $validate['ext'] = explode('|', $validate_ext); } $upname = strrev($_FILES[$f]['name']); $array = explode('.',$upname); $upname = strrev($array[0]); if(!in_array($upname, $validate['ext'])) { echo json_encode( array( 'status' => 'fail', 'msg' => '允许上传的文件格式为:'.$validate_ext ) ); exit(); } $maxFileupload = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 0; $max_file_size = intval(tpCache('basic.file_size')); $file_size = $_FILES[$f]['size'] / 1024 / 1024; if ($file_size > $max_file_size || $file_size > $maxFileupload) { echo json_encode( array( 'status' => 'fail', 'msg' => "上传大小超过限制(".$file_size."M)" ) ); exit(); } /*验证图片一句话木马*/ $imgstr = @file_get_contents($_FILES[$f]['tmp_name']); if (false !== $imgstr && preg_match('#<\?php#i', $imgstr)) { return ['status' => 'fail','msg'=>'上传文件不合格']; } if ($_FILES[$f]["error"] > 0) { echo json_encode( array( 'status' => 'fail', 'msg' => '上传错误' ) ); exit(); } //生成目录 $dirname = './uploads/user/'.$this->users_id; if(!is_dir($dirname)) { mkdir($dirname,0777,true); } $filename = $dirname . '/' . date('YmdHis').rand(1000,9999) . '.' . $upname; //判断文件是否已存在 move_uploaded_file($_FILES[$f]["tmp_name"], $filename); echo json_encode( array( 'status' => 'success', 'msg' => str_replace('./', '/', $filename) ) ); exit(); }
html5前端
function selectVideo(){ var index = layer.load(1, { shade: [0.3,'#000'] }); if($('input[name=v]').val() == ''){ layer.msg('请选择视频'); return; } var video = $('input[name=v]')[0].files[0]; var formData = new FormData(); formData.append('video', video); $.ajax({ type:'POST', dataType: 'Json', url:"{:url('House/videoUpload')}", data: formData, processData: false, contentType: false, success:function(msg){ if(msg.status == 'fail'){ layer.msg(msg.msg); layer.close(index); }else{ layer.msg('上传成功'); $('input[name=video]').val(msg.msg); $('#videoShow').attr('src', msg.msg).show(); layer.close(index); } } }); }