首页
工具箱
Search
1
Vue vben admin 2.0的封装部分坑点
1,546 阅读
2
python生成剪映草稿解析
1,401 阅读
3
百度地图坐标系对腾讯地图坐标系转换
1,249 阅读
4
VUE中使用mathjs的方法
1,158 阅读
5
解决Ant Design Vue的Select搜索指定字段的问题
1,078 阅读
技术宅的演示性文稿
技术宅的吐槽文档
一个的舞台
唱唱反调
老文章归档
光年计划
登录
Search
标签搜索
老文章
CS
长春
大学
程序员
vue
酷游CS俱乐部
dedecms
织梦
php
vant
小程序
军训
缘
ie6
google
大连
2012
js
ecshop
茶树虾
累计撰写
306
篇文章
累计收到
125
条评论
首页
栏目
技术宅的演示性文稿
技术宅的吐槽文档
一个的舞台
唱唱反调
老文章归档
光年计划
页面
工具箱
搜索到
4
篇与
php
的结果
2024-02-05
likeadmin增加文件上传类型
likeadmin我发现是一个非常好用,并且能快速上手的整套后台程序。它使用了thinkphp6+vue的架构,而且还可以使用后台的代码生成工具,快速的创建后台管理表单,大大节省了时间。在使用这个后台框架的时候,里面自带了一个“素材中心”。但是这个“素材中心”它限制了上传的类型,只能上传图片和视频两种类型。但是如果我们需要上传其它文件,并且也想通过这个“素材中心”来进行管理的话,我们就需要去改动代码了。主要改动的PHP文件,涉及3个文件,分别是以下4个:config/project.phpapp/common/service/UploadService.phpapp/common/service/storage/engine/Server.phpapp/adminapi/controller/UploadController.php首先,我们先找到project.php文件,我们可以找到'file_files' => [ 'xls', 'xlsx' ],然后在后面加上// 文件上传限制 (文件) 'file_files' => [ 'xls', 'xlsx' ],然后找到第二个文件UploadService.php我们可以找到最后的“视频上传”方法,然后在后面加上文件上传的方法public static function files($cid, int $sourceId = 0, int $source = FileEnum::SOURCE_ADMIN, string $saveDir = 'uploads/files') { try { $config = [ 'default' => ConfigService::get('storage', 'default', 'local'), 'engine' => ConfigService::get('storage') ?? ['local'=>[]], ]; // // 2、执行文件上传 $StorageDriver = new StorageDriver($config); $StorageDriver->setUploadFile('file'); $fileName = $StorageDriver->getFileName(); $fileInfo = $StorageDriver->getFileInfo(); // 校验上传文件后缀 if (!in_array(strtolower($fileInfo['ext']), config('project.file_files'))) { throw new Exception("文件不允许上传". $fileInfo['ext'] . "文件"); } // 上传文件 $saveDir = $saveDir . '/' . date('Ymd'); if (!$StorageDriver->upload($saveDir)) { throw new Exception($StorageDriver->getError()); } // 3、处理文件名称 if (strlen($fileInfo['name']) > 128) { $name = substr($fileInfo['name'], 0, 123); $nameEnd = substr($fileInfo['name'], strlen($fileInfo['name'])-5, strlen($fileInfo['name'])); $fileInfo['name'] = $name . $nameEnd; } // 4、写入数据库中 $file = File::create([ 'cid' => $cid, 'type' => FileEnum::FILE_TYPE, 'name' => $fileInfo['name'], 'uri' => $saveDir . '/' . str_replace("\\","/", $fileName), 'source' => $source, 'source_id' => $sourceId, 'create_time' => time(), ]); // 5、返回结果 return [ 'id' => $file['id'], 'cid' => $file['cid'], 'type' => $file['type'], 'name' => $file['name'], 'uri' => FileService::getFileUrl($file['uri']), 'url' => $file['uri'] ]; } catch (Exception $e) { throw new Exception($e->getMessage()); } }添加好了以后,找到最后一个文件Server.php在大约45行的样子,找到 $limit = array_merge(config('project.file_image'), config('project.file_video'));这行代码,然后修改成$limit = array_merge(config('project.file_image'), config('project.file_video'), config('project.file_files'));文件UploadController.php在64行位置public function video()方法的后面,添加/** * @notes 上传文件 * @return Json * @author teaxia * @date 2024/01/11 0:15 */ public function files() { try { $cid = $this->request->post('cid', 0); $result = UploadService::files($cid); return $this->success('上传成功', $result); } catch (Exception $e) { return $this->fail($e->getMessage()); } }至此,php部分修改完成。前端部分呢,找到src/views/material/index.vue文件在tabsMap里面添加{ type: 'files', name: '文件' }src/components/material/index.vue文件找到56行<upload v-if="type == 'video'" class="mr-3" :data="{ cid: cateId }" :type="type" :show-progress="true" @change="refresh"> <el-button type="primary">本地上传</el-button> </upload>在后面添加<upload v-if="type == 'files'" class="mr-3" :data="{ cid: cateId }" :type="type" :show-progress="true" @change="refresh"> <el-button type="primary">本地上传</el-button> </upload>找到276行左右case 'video': return 20在后面添加case 'files': return 30
2024年02月05日
146 阅读
0 评论
0 点赞
2022-07-21
php保存前端上传的base64图片到服务器
// 上传图片 $base64_url = $_POST['image']; //这里是获取图片的名称,当然也可以自己拼接 // 图片的名称 $name = $_POST['name'].date("His",time())."_".rand(1000,9999).'.jpg'; // 注意后面的.jpg,如果需要的话,自己进行一次判断 //判断是否有逗号 如果有就截取后半部分 if (strstr($base64_url,",")){ $base64_url = explode(',',$base64_url); $base64_url = $base64_url[1]; } // 解码图片 $data = base64_decode($base64_url); //设置图片保存路径 // 判断是什么图片 $type = $_POST['type']==0?'original':'compose'; $path = "./img/".$type."/".date("Ymd",time()); //判断目录是否存在 不存在就创建 if (!is_dir($path)){ mkdir($path,0755,true); // windows跟linux的系统权限不太一样哦 } //图片路径 $imageSrc= $path."/". $name; //生成文件夹和图片 $r = file_put_contents($imageSrc, $data); if (!$r) { $redata['success'] = 1; $this->ajaxReturn($redata); // 图片生成失败,自己处理一下吧 }else { $redata['success'] = 0; $redata['imgurl'] = $imageSrc; $this->ajaxReturn($redata); //图片生成成功 返回状态或者其他信息 }
2022年07月21日
343 阅读
0 评论
1 点赞
2012-07-25
PHP写的一个缘分测试小程序
在学校无聊,用PHP写了一个缘分测试小程序,仅供娱乐 演示地址http://www.teaxia.com/pt/设计思路使用PHP的rand();随机数函数,然后随机生成一个在50-100范围内的数字,然后这个数字就是缘分的匹配值在通过switch匹配一下范围,输出匹配值和一些话,就这样完成了……
2012年07月25日
272 阅读
0 评论
1 点赞
2012-07-23
PHP通过GD库生成随机验证码
<?phpfunction yzm($w=100,$h=50,$t=3,$num) {//$w=画布宽度,$h=画布高度 ,$t=验证码字符集// 1、 准备画布$img=imagecreatetruecolor($w,$h);// 2、 为画布准备调色板//$bgcolor=imagecolorallocate($img,rand(130,255),rand(130,255),rand(130,255));/* $s=imagecolorallocate($img,rand(1,130),rand(1,130),rand(1,130));$d=imagecolorallocate($img,rand(130,255),rand(130,255),rand(130,255)); */// 3、 用函数画画imagefilledrectangle($img,0,0,$w,$h,d($img));//使用for循环输出100个像素点干扰元素for($i=1;$i<=100;$i++){imagesetpixel($img,rand(0,$w),rand(0,$h),s($img));}//使用for循环输出4个椭圆形干扰元素for($i=1;$i<=4;$i++){imageellipse($img,rand(0,$w),rand(0,$w),rand(0,$w),rand(0,$w),s($img));}//进行字符匹配$str=''; //声明一个变量,给他一个空值for($i=1;$i<=$num;$i++) {if($t<3) {$type=$t;}else{$type=rand(0,2);}switch ($type) {case 0://数字$ascii=rand(48,57);break;case 1://大写字母$ascii=rand(65,90);break;case 2://小写字母$ascii=rand(97,122);break;}$str.=chr($ascii);//这里循环出来是一个数组,下面通过数组加下标的形式访问}//使用for循环出4个字母for ($i=0;$i<$num;$i++) {$x=$i*($w/$num)+10;$y=rand(2,$h-15);imagechar($img,7,$x,$y,$str[$i],s($img));}// 4、 告诉服务器你画的是什么玩意header("content-type:image/jpg");// 5、 输出到浏览器或者保存为文件imagejpeg($img);// 6、 销毁资源(画布和调色板)imagedestory($img);}//随机输出背景颜色function s($img) {return imagecolorallocate($img,rand(1,130),rand(1,130),rand(1,130));}//随机输出验证码颜色function d($img) {return imagecolorallocate($img,rand(130,255),rand(130,255),rand(130,255));}yzm(125,30,3,4); //参数.宽度,高度,0=验证码全是数字 1=大写字母 2=小写字母 3以上是数字和字母混编,有多少个验证码?>
2012年07月23日
182 阅读
0 评论
3 点赞