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);
}
}
});
}