ajax+tp单文件上传没有问题,上传多文件本来网上找个现成的,结果乱七八糟的,全都不能用,所以自己写一个吧,免得后来人踩坑
html
上传
ajax
$(".upload_btn").click(function(){
var formData = new FormData();
var id = $(this).val();
var files = $(".upload_files")[0].files;
if(files.length == 0){
fail('上传的图片不能为空');
return false
}
//这一步很关键,直接传输files的话tp后台是不认的
for(let i in files){
formData.append("file"+i, files[i]);
}
$.ajax({
url: "后台连接?id="+id, //id是我定文件夹用的,按自己需求来
method: 'POST',
data: formData,
contentType: false,
processData: false,
cache: false,
success: function(data) {
if(data == 0){
fail('您没有权限修改此内容');
}else if(data > 0){
success('修改成功');
}else{
fail('修改失败,请稍后再试');
}
},
error: function (error) {
console.log(error);
fail('添加失败,请稍后再试');
}
});
});
tp5.1
use think\facade\Request;
use think\File;
use think\facade\Env;
$id = $this->request->param('id');
$files = Request::file();
$path = Env::get('root_path').'public\\assets\\'.$id;
foreach($files as $k => $file){
$fileInfo = $file->getInfo();
$file->move($path,$fileInfo['name']);
}