1:composer安装:

composer require qiniu/php-sdk

2:

配置使用:

在tp5.1的配置文件app.php中配置七牛云的参数

    'qiniu' => [
'accesskey' => '你的accesskey',
'secretkey' => '你的secretkey',
'bucket' => '存储空间',
'domain' => '域名'
],

3: 前端

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> webuploader上传</title>
<!-- 引入webuploader上传-->
<link rel="stylesheet" type="text/css" href="/webuploader-0.1.5/webuploader.css"> </head>
<body> <div id="uploader" class="wu-example">
<!--用来存放文件信息-->
<div id="thelist" class="uploader-list"></div>
<div class="btns">
<div id="picker">选择文件</div>
<button id="ctlBtn" class="btn btn-default">开始上传</button>
</div>
<div class="formControls col-xs-4 col-sm-4">
<input type="hidden" value="/static/img/2.jpeg" name="icon" id="icon"/>
<img src="/static/img/2.jpeg" id="pic" name="icon" style="width: 50px;">
<button onclick="delimg()">删除图片</button>
</div>
</div>
<!--</form>-->
</body>
</html>
<!-- jq-->
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<!-- 引入webuploader上传-->
<script type="text/javascript" src="/webuploader-0.1.5/webuploader.js"></script>
    /*文件上传*/
var uploader = WebUploader.create({
auto: true,
chunked: true, //是否要分片处理大文件上传
chunkSize: 2 * 1024 * 1024, //分片上传,每片2M
fileSizeLimit: 2 * 1024 * 1024 * 1024, // 所有文件总大小限制
fileSingleSizeLimit: 2 * 1024 * 1024 * 1024, // 单个文件大小限制
swf: '/webuploader/Uploader.swf',//文件接收服务端。
server: '/img/upfile',//文件接收服务端。
compress: {
// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 90,
},
pick: {
id: '#picker',
// 是否开启选择多个文件的能力
multiple: false
},
accept: { //指定接受哪些类型的文件
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}
});
uploader;
//当文件被加入队列以后触发
uploader.on('fileQueued',function(file){
var $li = $(
'<div id="' + file.id + '" class="file-item thumbnail" onclick="delUpload(this,'+i+','+num+');">' +
'<input type="hidden" name="img[]" id="'+file.id+'id" />'+
'<img>' +
'<div class="info">开始上传图片...</div>' +
'</div>'
),
$img = $li.find('img');
$("#fileList"+i).append($li);//图片添加到容器
var sum = $("#fileList"+i).find('.file-item').length;
if(sum >= num){
$("#filePicker"+i).attr('style','display:none;');
}
// 创建缩略图显示
uploader.makeThumb(file,function(error,src){
if (error){
$img.replaceWith('<span>不能预览</span>');
return;
}
$img.attr('src',src);
},200,200);
});
// 文件上传过程中创建进度百分比实时显示。
uploader.on('uploadProgress',function(file,percentage){
$("#"+file.id+" .info").html('正在上传('+parseInt(percentage*100)+'%)');
}); //文件上传返回成功,判断是否成功上传到七牛
uploader.on('uploadSuccess', function(file,response){
if(response.code == 0){
$("#"+file.id+" .info").html('上传失败');
}else{
sumimg(num);
$("#"+file.id+" .info").html('上传完成,点击图片可删除');
$( '#'+file.id ).addClass('upload-state-done');
$( '#'+file.id+"id").val(response.data);//赋值到input
}
});

后端路由:

Route::get('img/create','img/img/create');
Route::post('img/upfile','img/img/upfile');

调用七牛

use Qiniu\Auth;
use Qiniu\Config;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;

控制器:

<?php

namespace app\img\controller;

use Qiniu\Auth;
use Qiniu\Storage\UploadManager;
use think\Controller;
use think\Request; class Img extends Controller
{ /**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
//
return view('img/create');
} /**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function upfile(Request $request) {
// 初始化签权对象
$accesskey=config('qiniu.accesskey');
$secretkey=config('qiniu.secretkey');
$bucket=config('qiniu.bucket');
$domain=config('qiniu.domain');
$auth = new Auth($accesskey,$secretkey); $token = $auth->uploadToken($bucket); // 构建 UploadManager 对象
$uploadMrg = new UploadManager(); // 上传文件到七牛
$files = $_FILES;
$values = array_values($files);
$saveName = hash_file('sha1', $values[0]['tmp_name']) . time();
$this->assign('saveName',$saveName);
list($ret, $err) = $uploadMrg->putFile($token, $saveName, $values[0]['tmp_name']);
if ($err !== null) {
return getJsonData('500','上传图片失败','');
} else {
$data= 'http://' . $domain. '/' . $ret['key'];
return getJsonData('200','上传成功',$data);
}
} public function delete($id)
{
//
}
}

参考博客:

https://www.cnblogs.com/BearLee/p/10685018.html#4383580

tp5 webupload文件上传至七牛云的更多相关文章

  1. .Net Core实现将文件上传到七牛云存储

    功能:将图片上传到七牛云存储 准备工作 注册七牛账号,提交实名认证(基本上1天内内审核通过) 登录七牛后台->对象存储->新建空间 (基本概念:https://developer.qini ...

  2. laravel7文件上传至七牛云并保存在本地图片

    HTML代码: <form class="layui-form" action="{{route('doctor.store')}}" method=&q ...

  3. 微信小程序文件上传至七牛云(laravel7)

    1 wxml: <view> <form bindsubmit="dopost"> <view> <label>真实姓名</l ...

  4. Tp3.1 文件上传到七牛云

    TP3.1 中不支持Composer 就无法用composer 安装 下载历史的SDK https://github.com/qiniu/php-sdk/releases/tag/v7.0.8 下载下 ...

  5. Java进阶学习:将文件上传到七牛云中

    Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...

  6. 利用cropper插件裁剪本地图片,然后将裁剪过后的base64图片上传至七牛云空间

    现在做的项目需要做一些图片处理,由于时间赶急,之前我便没有处理图片,直接将图片放在input[type=file]里面,以文件的形式提交给后台,这样做简直就是最低级的做法,之后各种问题便出来了,人物头 ...

  7. 阿里云CentOS自动备份MySql 8.0并上传至七牛云

    本文主要介绍一下阿里云CentOS7下如何对MySql 8.0数据库进行自动备份,并使用.NET Core 将备份文件上传至七牛云存储上,并对整个过程所踩的坑加以记录. 环境.工具.准备工作 服务器: ...

  8. Spring MVC 之文件上传(七)

    SpringMVC同样使用了apache的文件上传组件.所以需要引入以下包: apache-commons-fileupload.jar apache-commons-io.jar 在springAn ...

  9. django + ckeditor + 七牛云,图片上传到七牛云

    传送门 本人使用的是 Django 的自带的管理后台,安装 ckeditor 富文本编辑器后,上传图片的时候直接传到七牛云的.

随机推荐

  1. java在访问https资源时,忽略证书信任问题 (转)

    java程序在访问https资源时,出现报错sun.security.validator.ValidatorException: PKIX path building failed: sun.secu ...

  2. CSS 3D的魅力

    用户1093975发表于Web项目聚集地订阅 151 在这篇文章中: 前言: demo1 demo2 结语: 本文介绍了CSS来实现3D效果,并且有详细代码和解释.建议大家只字不差的阅读.本文的作者是 ...

  3. 在view中实现UIViewController的跳转 By H.L

    view中是不能进行UIViewController的push,pop等操作的,若进行跳转操作,一般是用代理,block,通知等实现,那如何实现在ViewController的subView中实现跳转 ...

  4. endl与\n的区别

    看C++Primer的时候看到的,然后去百度了一下: 比较明白的解释: 1.区别在于: \n只代表换行的转义字符 endl除了代表换行,还紧跟着清出缓冲槽 2.接下来我们看一下具体内容的辨析: 要明白 ...

  5. MySQL 主从复制与读写分离 (超详细图文并茂小白闭着眼睛都会做)

    MySQL 主从复制与读写分离 1.什么是读写分离 2.为什么要读写分离 3.什么时候要读写分离 4.主从复制与读写分离 5.mysql支持的复制类型 6.主从复制的工作过程 7.MySQL主从复制延 ...

  6. Linux之shell变量

    一.变量名的规范 定义形如:class_name='xiaohemiao' 使用形如:echo $class_name 1.变量名后面的等号左右不能有空格 2.命名只能使用英文字母,数字和下划线,首个 ...

  7. charles模拟弱网

      Charles操作:延迟设置 >选择相应的网络延迟设置或者自定义延迟 >开启延迟即可,如图:      

  8. MySQL时间格式TIMESTAMP和DATETIME的区别

    时区,timestamp会跟随设置的时区变化而变化,而datetime保存的是绝对值不会变化 自动更新,insert.update数据时,可以设置timestamp列自动以当前时间(CURRENT_T ...

  9. 「BUAA OO Pre」Git生成多个ssh key并连接GitLab仓库

    「BUAA OO Pre」Git生成多个ssh key并连接GitLab仓库 Part 0 前言 写作背景 笔者在配置学校GitLab的ssh key时遇到一些问题,原因应为曾经配置过GitHub的s ...

  10. Dubbo源码剖析五之服务本地缓存

    Dubbo调用者需要通过注册中心(例如:ZK)注册信息,获取提供者.但是如果频繁从ZK获取信息肯定会存在单点故障问题,所以Dubbo提供了将提供者信息缓存在本地的方法. Dubbo在订阅注册中心的回调 ...