159 lines
5.5 KiB
PHP
159 lines
5.5 KiB
PHP
<?php
|
|
namespace app\api\controller;
|
|
|
|
use think\Db;
|
|
use \think\Loader;
|
|
use think\helper\Hash;
|
|
use Qrcode\Compress;
|
|
use app\admin\model\Attachment as AttachmentModel;
|
|
|
|
/**
|
|
* 公共接口
|
|
* @package app\api\controller
|
|
*/
|
|
class Uploadfile extends Api
|
|
{
|
|
|
|
//初始化
|
|
public function initialize(){
|
|
parent::initialize();
|
|
}
|
|
|
|
/**
|
|
* 上传图片
|
|
* @param file $imgfile 图片文件
|
|
* @author loomis<2477365162@qq.com>
|
|
*/
|
|
public function uploadimgfile(){
|
|
|
|
$file = request()->file('imgfile');
|
|
// 移动到框架应用根目录 /public/uploads/ 目录下'size'=>15678,
|
|
$info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move($_SERVER['DOCUMENT_ROOT'] . '/uploads/xcximg');
|
|
if ($info) {
|
|
$source = $_SERVER['DOCUMENT_ROOT'] . '/uploads/xcximg/' . date('Ymd') . '/' . $info->getFilename();
|
|
$percent = 0.5; #缩放比例
|
|
(new Compress($source, $percent))->compressImg($source); //压缩
|
|
|
|
// 成功上传后 获取上传信息
|
|
$data['uid'] = 0;
|
|
$data['path'] = 'uploads/xcximg/' . date('Ymd') . '/' . $info->getFilename();
|
|
$data["md5"] = md5($data['path']);
|
|
$data["sha1"] = sha1($data['path']);
|
|
$data['name'] = $info->getFilename();
|
|
$data['ext'] = $info->getExtension();
|
|
$data['size'] = $info->getSize();
|
|
$data['category'] = 2;
|
|
$data['create_time'] = time();
|
|
$id = AttachmentModel::create($data);
|
|
|
|
return json(['code' => 200, 'msg' => '上传成功', 'result' => [
|
|
'img_id' => $id['id'],
|
|
'img_url' => $this->getFileUrl($id['id']),
|
|
]]);
|
|
} else {
|
|
// 上传失败获取信息
|
|
return json(['code' => 500, 'msg' => $file->getError()]);
|
|
}
|
|
}
|
|
|
|
//上传视频
|
|
public function uploadvideofile() {
|
|
|
|
$file = request()->file('videofile');
|
|
// 移动到框架应用根目录/public/uploads/ 目录下'size'=>15678,
|
|
$info = $file->validate(['ext' => 'mp4'])->move($_SERVER['DOCUMENT_ROOT'] . '/uploads/xcxvideo');
|
|
if($info){
|
|
// 成功上传后 获取上传信息
|
|
$data['uid'] = 0;
|
|
$data['path'] = 'uploads/xcxvideo/' . date('Ymd') . '/' . $info->getFilename();
|
|
$data["md5"] = md5($data['path']);
|
|
$data["sha1"] = sha1($data['path']);
|
|
$data['name'] = $info->getFilename();
|
|
$data['ext'] = $info->getExtension();
|
|
$data['size'] = $info->getSize();
|
|
$data['category'] = 2;
|
|
$data['create_time'] = time();
|
|
$id = AttachmentModel::create($data);
|
|
|
|
return json(['code' => 200, 'msg' => '上传成功', 'result' => [
|
|
'video_id' => $id['id'],
|
|
'video_url' => $this->getFileUrl($id['id']),
|
|
]]);
|
|
} else {
|
|
// 上传失败获取信息
|
|
return json(['code' => 500, 'msg' => $file->getError()]);
|
|
}
|
|
}
|
|
|
|
//接收签名图片
|
|
public function uploadsigninimgfile(){
|
|
$filedata = $this->request->param(); //传参
|
|
$file = $filedata['imgfile'];
|
|
|
|
header('Content-type:text/html;charset=utf-8');
|
|
$base64_image_content = trim($file);
|
|
//正则匹配出图片的格式
|
|
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)) {
|
|
$type = $result[2];//图片后缀
|
|
|
|
$new_file = $_SERVER['DOCUMENT_ROOT'] . '/uploads/xcximg/'.date('Ymd').'/';
|
|
|
|
|
|
if (!file_exists($new_file)) {
|
|
//检查是否有该文件夹,如果没有就创建,并给予最高权限
|
|
mkdir($new_file, 0700);
|
|
}
|
|
|
|
$filename = time() . '_' . uniqid() . ".{$type}"; //文件名
|
|
$new_file = $new_file . $filename;
|
|
|
|
//写入操作
|
|
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))) {
|
|
|
|
// 成功上传后 获取上传信息
|
|
$data['uid'] = 0;
|
|
$data['path'] = 'uploads/xcximg/' . date('Ymd') . '/' . $filename;
|
|
$data["md5"] = md5($data['path']);
|
|
$data["sha1"] = sha1($data['path']);
|
|
$data['name'] = $filename;
|
|
$data['ext'] = $type;
|
|
$data['size'] = 0;
|
|
$data['category'] = 2;
|
|
$data['create_time'] = time();
|
|
$id = AttachmentModel::create($data);
|
|
|
|
return json(['code' => 200, 'msg' => '上传成功', 'result' => [
|
|
'img_id' => $id['id'],
|
|
'img_url' => $this->getFileUrl($id['id']),
|
|
]]);
|
|
} else {
|
|
return json(['code' => 500, 'msg' => '上传失败']);
|
|
}
|
|
}
|
|
}
|
|
|
|
function getimg($imgsrc){
|
|
list($src_w,$src_h,$src_info) = getimagesize($imgsrc);
|
|
switch ($src_info){
|
|
case 2:
|
|
$createtype = 'imagecreatefromjpeg';
|
|
$headertype = 'imagejpeg';
|
|
break;
|
|
case 1:
|
|
$createtype = 'imagecreatefromgif';
|
|
$headertype = 'imagegif';
|
|
break;
|
|
case 3:
|
|
$createtype = 'imagecreatefrompng';
|
|
$headertype = 'imagepng';
|
|
break;
|
|
default:
|
|
$createtype = 'imagecreatefromjpeg';
|
|
$headertype = 'imagejpeg';
|
|
break;
|
|
}
|
|
$src=$createtype($imgsrc);
|
|
return $src;
|
|
}
|
|
}
|