概述
1.前端页面(这里前端用的layui)
2.JS部分
layui.use(['form', 'layedit', 'laydate'], function() {
var form = layui.form
, layer = layui.layer
, layedit = layui.layedit
, laydate = layui.laydate;
});
var img_path =""
layui.use('upload', function(){
var $ = layui.jquery
,upload = layui.upload;
//普通图片上传
var uploadInst = upload.render({
elem: '#test1'
,url: 'admin/Game/testImg'
,before: function(obj){
//预读本地文件示例,不支持ie8
window['objs'] = obj;
}
,done: function(res){
console.log(res);
//如果上传失败
if(res.code > 0){
return yly_msg(2,res.msg);
//
return layer.msg('上传失败');
}else{
objs.preview(function(index, file, result){
$('#demo1').attr('src', result); //图片链接(base64)
});
img_path = res.data;
//
layer.msg(res.msg);
yly_msg(2,res.msg);
}
//上传成功
}
,error: function(){
//演示失败状态,并实现重传
var demoText = $('#demoText');
demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-mini demo-reload">重试</a>');
demoText.find('.demo-reload').on('click', function(){
uploadInst.upload();
});
}
});
});
3.后台代码:
<由于使用CI框架,其他框架可以参考,部分代码写法不同>
/**
* [testImg 上传图片处理]
* @return [type] [description]
*/
public function testImg(){
require_once APPPATH.'third_party/oss/autoload.php';
$config['upload_path']
= 'meilihua/games/';
$config['allowed_types']
= 'jpg|png|JPG|PNG';
$config['file_name']
= date('YmdHis').rand(111,999).".png";
// if (!is_dir($config['upload_path'])) mkdir($config['upload_path'], 0777);
if(!is_dir($config['upload_path'])){
if(!is_dir('meilihua/')){
mkdir('meilihua/', 0777);
}
mkdir($config['upload_path'], 0777);
}
$this->load->library('upload', $config);
if($this->upload->do_upload('file')) {
$data = $this->upload->data('file_name');
$info=$config["file_name"];
$src=$config['upload_path'].$info;
// 上傳到oss
$endpoint = "oss-cn-hangzhou.aliyuncs.com";
$accessKeyId = "PARnUY8sBJjv5d90";
$accessKeySecret = "n8pEPnHX0N0o9bDaYkoa6ebbsHrIhc";
$bucket = "meilihua";
$object = "meilihua/games/".$info;
// $download_file = "download.jpg";
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
//先把本地的example.jpg上传到指定$bucket, 命名为$object
$ossClient->setTimeout(3600);
$ossClient->setConnectTimeout(5);
try{
$ossClient->uploadFile($bucket, $object, $src);
} catch(OssException $e) {
printf(__FUNCTION__ . ": FAILEDn");
printf($e->getMessage() . "n");
return;
}
$res=array(
'code' => 0,
'msg' => '上传成功!',
'data' => $object
);
echo json_encode($res);
exit;
} else {
//获取上传失败以后的错误提示
$info=$this->upload->display_errors();
$res=array(
'code' => 1,
'msg' => $info
);
echo json_encode($res);
exit;
}
}
最后
以上就是成就楼房为你收集整理的CI框架 OSS图片上传的全部内容,希望文章能够帮你解决CI框架 OSS图片上传所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复