tp6配置layui,实现文件上传与储存
1、修改public/.htaccess文件配置,在index.php后加?,如下:
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
2、引入layui.js文件:
<script src="/static/layui/layui.js"></script>
3、引入layui的layer和upload模块:
layui.use(['layer', 'upload'], function () {
$ = layui.jquery;
upload = layui.upload;
layer = layui.layer
4、执行实例,接口配置:
var uploadInst = upload.render({ elem: '#img_upload' //绑定元素 , url: '/Files/upload' //上传接口, field: 'image', done: function (res) {
//上传完毕回调
if (res.code > 0) {
return layer.alert(res.msg, { icon: 2 });
}
$('#img_singer').attr('src', res.data);
}
, error: function () {
//请求异常回调
}
});
});
5、创建Files类及upload方法:
function upload(){
//接收数据:
$file = request()->file('image');
$savename = '/storage/' . \think\facade\Filesystem::disk('public')->putFile('topic', $file);
//同一斜杠:
$savename = str_replace('\\', '/', $savename);
//返回响应结果:
return json(['code' => 0, 'data' => $savename]);
// 可以echo也可以return
}
存储上传数据:
function save() {
var data = {};
data.name = $('input[name="title"]').val();
data.catid = $('select[name="catid"]').val();
data.avatar = $('#img_singer').attr('src');
console.log(data);
$.post('/singer/save', data, function (res) {
console.log(res);
if (res) {
layer.alert('新增成功', { icon: 1 }, function () {
location.href = 'http://admin.phpenv.com/';
});
}
}, 'json')
}
curl请求接口数据
$url = "http://v.juhe.cn/toutiao/index?type=guoji&key=***";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPGET, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($curl, CURLOPT_HEADER, false);
// 执行curl_exec()获取到的信息不输出,直接已字符串方式返回
curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);
$apiData = curl_exec($curl);
// echo $apiData;
$data = json_decode($apiData, true);
总结:
curl的参数配置有点看不懂,根据老师的配置可以获取网络数据,有点像爬虫;通过配置layui实现文件上传比较容易理解,注意第1条文件配置,否则会报错。