总结的挺好的,我就直接拿过来了
--------------------------------------------------------------
1. 一个异步上传的插件uploadify
在html中引入uploadify的js和css文件。 tp5中如
html如下:
- <p><span style="font-size:24px;"><link rel="stylesheet"type="text/css"href="__STATIC__/admin/uploadify/</span></p><p><span style="font-size:24px;">uploadify.css" /></span></p><p><span style="font-size:24px;">{load href="__STATIC__/admin/uploadify/jquery.uploadify.min.js"}</span></p><div class="row cl">
- <label class="form-label col-xs-4 col-sm-2">缩略图:</label>
- <div class="formControls col-xs-8 col-sm-9">
- <input id="file_upload" type="file" multiple="true" >
- <img style="display: none" id="upload_org_code_img" src="" width="150" height="150">
- <input id="file_upload_image" name="image" type="hidden" multiple="true" value="">
- </div>
- </div>
javascript调用代码如下:
- <script>
- <span style="white-space:pre"> </span>
- <span style="white-space:pre"> </span>swf = "__STATIC__/admin/uploadify/uploadify.swf";
- <span style="white-space:pre"> </span>
- <span style="white-space:pre"> </span>image_upload_url = "{:url('image/upload')}";
- $(function() {
- $("#file_upload").uploadify({
- 'swf' : swf,
- 'uploader' : image_upload_url,
- 'buttonText' : '图片上传',
- 'fileTypeDesc' : 'Image files',
- 'fileObjName' : 'file',
- 'fileTypeExts' : '*.gif; *.jpg; *.png',
- 'onUploadSuccess' : function(file, data, response) {
-
-
-
- var obj = JSON.parse(data);
-
- if(response){
- $('#upload_org_code_img').attr('src',obj.data);
- $('#file_upload_image').attr('value',obj.data);
- $('#upload_org_code_img').show();
- }
- }
- });
- });
2.用七牛云存储图片封装
对于qiniu类库的下载,一是通过composer,如果电脑中有composer,安装很快捷,
在项目根目录下php composer.phar require qiniu/php-sdk,或者composer require qiniu/php-sdk等待即可完成。
对于电脑中没有composer的,可以直接下载提供的符合 Composer 规范的vendor 压缩包并在本地解压。解压后的内容和使用 Composer 方式获取到的内容完全一致,之后的使用方式也一致。
或者下载源代码sdk包放在vender中,对于tp5在使用时require VENDER_PATH.'php-sdk-7.1.x/autoload.php';也可以放在随意文件目录总,只要引入就行了。
即可。
封装的上传类如下:
- <?php
- namespace app\common\lib;
-
- use Qiniu\Auth;
-
- use Qiniu\Storage\UploadManager;
-
-
-
-
- class Upload
- {
-
- public static function image(){
- if(empty($_FILES['file']['tmp_name'])){
- exception('你提交的图片数据不合法',404);
- }
-
- $file = $_FILES['file']['tmp_name'];
-
-
- $pathinfo = pathinfo($_FILES['file']['name']);
- $ext = $pathinfo['extension'];
- $config = config('qiniu');
-
- $auth = new Auth($config['ak'],$config['sk']);
-
- $token = $auth->uploadToken($config['bucket']);
-
- $key = date('Y').'/'.date('m').'/'.substr(md5($file),0,5).date('YmdHis').mt_rand(0,9999).'.'.$ext;
-
-
- $uploadMgr = new UploadManager();
- list($ret,$err) = $uploadMgr->putFile($token,$key,$file);
- if($err !== null){
- return null;
- }else{
- return $key;
- }
- }
- }
对于调用:(就是那么简单)
-
-
-
-
- public function upload(){
-
- try{
-
- $image = Upload::image();
- }catch(\Exception $e){
- echo json_encode(['status'=>0,'message'=>$e->getMessage()]);
- }
-
- if($image){
- $data = [
- 'status' => 1,
- 'message' => 'OK',
- 'data' => config('qiniu.image_url').'/'.$image,
- ];
- echo json_encode($data);exit;
- }else{
- echo json_encode(['status'=>0,'message'=>'上传失败']);
- }
- }