php文件上传到七牛云并返回文件名

浏览:6043 发布日期:2018/01/22 分类:用法示例 关键字: 云储存
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



原文链接:http://micuer.com/index.php?m=index&a=read&id=238
评论( 相关
后面还有条评论,点击查看>>