七牛云后端上传文件
我的案例是对接tp框架的,亦可用于其他框架,本文章只针对tp框架进行详解,大概步骤如下:
一、引入七牛云插件,本博客里面有插件可进行下载,亦可加本人QQ(296346102)拿资料
二、修改tp框架中的config.php配置文件
三、在php文件进行程序的编写,详情如下:
第一步:引入插件,找到tp框架根目录下的vendor目录,这个目录是存放插件用的,然后我把我的插件命名为“qiniu”放入该目录下,如下图:
好了,引入插件之后呢,就调整config.php文件了。
第二步:在config.php配置文件后追加如下内容:
//用于处理七牛云上传-liangyi-2018-7-20
'upload_validate' =>
array (
'size' => 10485760,
'ext' =>
array (
0 => 'jpg',
1 => 'gif',
2 => 'png',
3 => 'jpeg',
),
),
'upload_path' => '/data/upload',
'url_route_on' => true,
'url_route_must' => false,
'route_complete_match' => false,
'url_html_suffix' => 'html',
'storage' =>
array (
'storage_open' => true,
'accesskey' => 'WgJlGjsNoY0xxxxxxxxxGDR-Y-',//这个是七牛云的**
'secretkey' => 'iyaRU4XlxxxxxxxxxxxxxxxxryO-QyqgBt',//这个也是七牛云那边提供的**
'bucket' => 'hoxxxxxng',//名称(七牛进行提供)
'domain' => 'http://pixxxxx.cn/',//网址(七牛进行提供)
),
上面的内容是变量调用用到的,如果是其他项目,就要修改插件里面的对应变量的值了
第三步:最后一步就是业务逻辑层的编写了,我们先看html页面先,如下:
<form name="add_contract" method="post" action="{:url('index/jobs/add_job')}" enctype="multipart/form-data">
<div class="input_ly">
公司图片:
<input type="file" name="company_img">
</div>
<div class="input_ly">
<input type="submit" value="提交">
</div>
</form>
html页面我就不做多说明,想必大家都明白from表单上传的,接下来看php业务逻辑的编写了,如下:
$file = request()->file('company_img');
//如果图片存在
if($file)
{
Vendor("qiniu.php-sdk.Qiniu");//这个是引入插件的写法,认真看就会明白
Vendor("qiniu.php-sdk.src.Qiniu.Auth");
Vendor("qiniu.php-sdk.src.Qiniu.Zone");
Vendor("qiniu.php-sdk.src.Qiniu.Config");
Vendor("qiniu.php-sdk.src.Qiniu.Http.Client");
Vendor("qiniu.php-sdk.src.Qiniu.Http.Request");
Vendor("qiniu.php-sdk.src.Qiniu.Http.Response");
Vendor("qiniu.php-sdk.src.Qiniu.functions");
Vendor("qiniu.php-sdk.src.Qiniu.Storage.UploadManager");
Vendor("qiniu.php-sdk.src.Qiniu.Storage.FormUploader");
$upload = \Qiniu::instance();
$info = $upload->upload();
if($info)
{
$img_one= config('storage.domain').$info[0]['key'];//这个就是上传至七牛云的图片路径,最后把该变量入库就好啦
}
}
上面的代码是基于tp框架写的,好了,完事,有什么不明白的,可以评论!