您的位置:首页 > 娱乐 > 明星 > 网店网络营销与推广策划书_成品动漫和视频网站入口_网站运营推广方案_指数函数图像

网店网络营销与推广策划书_成品动漫和视频网站入口_网站运营推广方案_指数函数图像

2024/12/23 12:29:38 来源:https://blog.csdn.net/m0_63603104/article/details/143480094  浏览:    关键词:网店网络营销与推广策划书_成品动漫和视频网站入口_网站运营推广方案_指数函数图像
网店网络营销与推广策划书_成品动漫和视频网站入口_网站运营推广方案_指数函数图像

一、文件上传路由

        在根目录下route文件夹中app.php文件中,添加文件上传功能路由,代码如下:

Route::post('upload/file','common.Upload/file');// 上传文件接口

二、功能代码开发

        在根目录下app文件夹下common文件夹中创建上传控制器并命名为Upload,代码如下:

<?php
/*** 上传* User: 龙哥·三年风水* Date: 2024/11/4* Time: 10:14*/
namespace app\controller\common;
use app\controller\Base;
use app\model\param\Upload as ParamUpload;
use Error\BaseError;
use think\exception\ValidateException;
use Upload\UploadFactory;class Upload extends Base
{//上传文件public function file(){$file = $this->request->file();$type = $this->request->param('type');try{$files = $file['file'];//查出上传设置$uploadparam = ParamUpload::dataFind(['id' => 1],'upload_type,checked_images,checked_videos,checked_filedocs,upload_number');//当下验证后缀$fileExt = [];//指定类型switch ($type){case 'image':$fileExt = $uploadparam['checked_images'];break;case 'video':$fileExt = $uploadparam['checked_videos'];break;case 'filedoc':$fileExt = $uploadparam['checked_filedocs'];break;default:throw new ValidateException('不支持的通道');break;}//验证validate(['file'=>'fileSize:'.($uploadparam['upload_number'] * 1024 * 1024).'|fileExt:'.$fileExt])->check($file);//获取文件后缀名$fileExtName = $files->getOriginalExtension();//新的文件名$fileName = str_replace('.'.$fileExtName,'',$files->getOriginalName());//截取文件后缀名$format = '.'.$fileExtName;//截取文件后缀名如 (.jpg)//原文件$primaryFileName = $fileName.$format;//加密后的文件$encryptionFileName = sha1(date('YmdHis', time()) . uniqid()) . $format;//要上传的路径$object = date('Y-m-d').'/'.$encryptionFileName;//临时文件地址$filePath = $files->getRealPath();//计算文件大小$fileSize = sprintf("%01.2f", $files->getSize()/(1024*1024));//调用工厂$uploadFactory = new UploadFactory();//选择通道$uploadHandle = $uploadFactory->getUploadHandle();$res = $uploadHandle->uploadFile($object,$uploadparam['upload_type'] == 1 ? $files : $filePath);$data['url'] = $res;$data['primary_fileName'] = $primaryFileName;$data['encryption_fileName'] = $encryptionFileName;$data['fileName_size'] = $fileSize;$data['fileName_type'] = $fileExtName;return succ('上传成功',$data);}catch (ValidateException $e){throw new BaseError($e->getMessage(),50000,200);}}
}

三、测试        

通过测试,发现一个错误,在上传文件工厂控制类里面。第一个就是参数错误,第二个是调用上传通道错误。《群控系统服务端开发模式-应用开发-上传工厂开发》中代码已修改。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com