七牛云上传文件
php七牛云怎么讲文件上传到七牛云并返回文件名保存到本地数据库
其实七牛云早就有了解了!但是一直没有静下心来好好的去挖掘!最近花了30多分钟写了个小小的demo分享出来!其他功能需要大家自己挖掘了哟!
本地demo满足了网站后台图片等文件保存到云服务器并将文件名存入数据库的需求!我呢是给大家做了一个引子!数据库的操作步骤需要大家自己完善!毕竟也就是简单的将名字insert into 一下就OK了的吗!
首先我们需要住蹙七牛云的账号:https://www.qiniu.com 大家自行注册
然后就是下载官方的sdk:https://github.com/qiniu/php-sdk/releases 这里大家也可以不下载,直接下载我后面打包的demo就可以
相关api文档:https://developer.qiniu.com/kodo/sdk/1241/php#4
进入正题:
我的demo写的比较乱后期要加入框架的时候再整理吧!这里大家看的也挺明了的!我就不删除那些注释了
创建了2个php文件 index可以理解为视图文件 up可以理解为控制器 具体如下图
其中
bucket
accesskey
secretkey
需要大家修改成自己的!如果还不会找这些呢 请点击访问下面的文章-
七牛云怎么获取bucket、accessKey、secretKey
-http://micuer.com/index.php?m=index&a=read&id=237
index.php 的代码如下
<?php
include "./autoload.php";
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
$bucket = 'micuerimg';
$accessKey = '7rOZXx8UDJRIUP5YNg9md6_8qjXZpbQY8XaRArqp';
$secretKey = 'dLoC0ewLmLcsGG5eTL9UTUQBQidoT0OLhU8utyUc';
$expires = 6000;
$auth = new Auth($accessKey, $secretKey);
$policy = array(
//'callbackUrl' => 'http://micuer.com/qiniuyun/examples/upload_verify_callback.php',
'callbackBody' => 'key=$(key)&hash=$(etag)&bucket=$(bucket)&fsize=$(fsize)&name=$(x:name)',
'callbackBodyType' => 'application/json'
);
$token = $auth->uploadToken($bucket, null, $expires, $policy, true);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
?>
<form method="post" action="up.php" enctype="multipart/form-data">
<input name="token" type="hidden" value="<?php echo $token;?>">
<input name="file" type="file" />
<input type="submit" value="上传"/>
</form>
up.php 的代码如下
<?php
include "./autoload.php";
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
$bucket = 'micuerimg';
$accessKey = '7rOZXx8UDJRIUP5YNg9md6_8qjXZpbQY8XaRArqp';
$secretKey = 'dLoC0ewLmLcsGG5eTL9UTUQBQidoT0OLhU8utyUc';
$expires = 6000;
$auth = new Auth($accessKey, $secretKey);
$policy = array(
//'callbackUrl' => 'http://micuer.com/qiniuyun/examples/upload_verify_callback.php',
'callbackBody' => 'key=$(key)&hash=$(etag)&bucket=$(bucket)&fsize=$(fsize)&name=$(x:name)',
'callbackBodyType' => 'application/json'
);
$token = $auth->uploadToken($bucket, null, $expires, $policy, true);
// 构建 UploadManager 对象
$uploadMgr = new UploadManager();
// 要上传文件的本地路径
$filePath = $_FILES['file']['tmp_name'];
// 上传到七牛后保存的文件名
$key = date("YmdH");
list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
echo "\n====> putFile result: \n";
if ($err !== null) {
var_dump($err);
} else {
var_dump($ret);
}
代码大家自行阅读吧,很简单的!下面我给大家介绍下怎么运行 我给大家的demo
首先现在demo 解压放到你本地服务器的一个文件夹下 我的是qiniuyun
然后选择文件 再点击上传
运行结果如图
其中key就是我们保存在七牛云中的文件名
我们在保存到数据库中的时候,直接自己组装下文件名就行了!
因为七牛云给我们提供了
bucket
的外链
组装下就好了!!!
无论你是返回的json还是数组都可以的!
下面是demo打包文件! 下载后请自行修改你自己的
$bucket
$accessKey
$secretKey
我想这样再保存到自己的数据库就很简单了吧!
代码比较粗略需要后期自己完善并添加到框架中!
自己多动动手或许会更好哦
链接: https://pan.baidu.com/s/1ran2wpA 密码: ndsi
在七牛云创建自己的空间,获取$bucket
$accessKey
$secretKey三个值,在设置网站域名,可以设置为二级域名,将二级域名在服务器上添加记录为cname类型记录值是七牛云显示的地址:如图
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理或删除。