1:打开文档运行官方SDK:composer require qiniu/php-sdk
; 2:在app\Http目录下新建文件夹Helpers
并创建文件qiuniu.php
; 3:在qiniu.php
中写入
<?php
// 引入鉴权类
use Qiniu\Auth;
// 引入上传类
use Qiniu\Storage\UploadManager;
function qiniu_upload($filePath)
{
// 需要填写你的 Access Key 和 Secret Key
$accessKey = '8qw4Vgq7MmycfixeI0UmDjWkGMQOT9y_IjaSsDMh';
$secretKey = 'guzXcaqE0fY1PhcV20aNMn4_dr3O6aUf3A9zdkMO';
// 构建鉴权对象
$auth = new Auth($accessKey, $secretKey);
// 要上传的空间
$bucket = 'nottdote';
// 生成上传 Token
$token = $auth->uploadToken($bucket);
// 上传到七牛后保存的文件名
$key = basename($filePath);
// 初始化 UploadManager 对象并进行文件的上传
$uploadMgr = new UploadManager();
// 调用 UploadManager 的 putFile 方法进行文件的上传
$uploadMgr->putFile($token, $key, $filePath);
//删除本地图片
unlink($filePath);
}
复制代码
4:在根目录找到composer.json
文件,在autoload
里面加入files
并引入app/Http/Helper/qiuniu.php
,终端运行composer dump-autoload
命令. 5:首页 引入 upload.js 以及 html5-fileupload 插件 6:新建ptoto路由并新建Photo控制器并写入 store 方法,方法为:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class PhotoController extends Controller
{
//上传图片
public function store(Request $request)
{
if ($request->hasFile('image') && $request->file('image')->isValid()) {
$allow_type = ['image/png', 'image/jpeg', 'image/gif'];
if (!in_array($request->image->getMimeType(), $allow_type)) {
return ['status' => 0, 'msg' => '图片类型不正确'];
}
if ($request->image->getClientSize() > 1024 * 1024 * 3) {
return ['status' => 0, 'msg' => '图片大小不能超过3M'];
}
$path = $request->image->store('public/images');
//上传到本地
// return ['status' => 1, 'msg' => '/storage' . str_replace('public', '', $path)];
//上传到七牛
$file_path = storage_path('app/') . $path;
qiniu_upload($file_path);
return ['status' => 1, 'msg' => 'http://p5xxnm0by.bkt.clouddn.com/' . basename($file_path)];
}
}
}
复制代码
7:upload.js 中修改url 还有修改 下面的msg
$("input[name='image']").val(result.msg);
$("#img_show").attr("src", result.msg);
复制代码
8:laravel中找到文件储存
,终端运行php artisan storage:link
!