正文 1578字数 161,603阅读

如果你想使用php将图片上传到七牛云存储,但是你看过官方提供的文档后还是一头雾水的话,你很适合看这篇文章。
你可以先写好自己上传图片的表单,例如:
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"/> <input type="submit" value="提交"/> </form>
Run code
Cut to clipboard

    七牛官方提供的方法已经相当完善了,只是刚解决的人大多看不太明白,upload.php的内容大多是七牛官方提供的方法,在此基础上添加和修改的一些代码,相信大家就应该很容易看懂了:
    require_once '<path_to_autoload_file>/autoload.php'; use Qiniu\Auth; use Qiniu\Storage\UploadManager; $file = $_FILES['file']['tmp_name']; //获取到文件的临时副本的名称 $accessKey = 'YOUR_APP_ACCESS_KEY'; $secretKey = 'YOUR_APP_SECRET_KEY'; $auth = new Auth($accessKey, $secretKey); $bucket = 'phpsdk'; //你的七牛空间名 // 设置put policy的其他参数 $opts = array( 'callbackBody' => 'name=$(fname)&hash=$(etag)' ); $token = $auth->uploadToken($bucket, null, 3600, $opts); $uploadMgr = New UploadManager(); list($ret, $err) = $uploadMgr->putFile($token, null, $file); echo "\n====> putFile result: \n";if ($err !== null) { var_dump($err); } else { var_dump($ret); }
    Run code
    Cut to clipboard

      上传成功后会返回一个$ret数组,此数组里保存着上传文件的hash值和key值,得到key值后就可获得预览和下载图片的链接,生成预览方法如下:
      require_once '<path_to_autoload_file>/autoload.php'; use Qiniu\Processing\Operation; $key = '上面获取的$ret里的key的值'; $domain = '你在七牛设置的域名'; $op = New Operation($domain); $ops = 'imageView2/0/w/10/h/20'; $url = $op->buildUrl($key, $ops); echo "\n====> imageView2 URL: \n $url";
      Run code
      Cut to clipboard