完成上传文件,头像可以裁剪;

This commit is contained in:
augushong
2019-08-29 13:55:38 +08:00
parent e3927cc6d2
commit 0ddbf60878
12 changed files with 3358 additions and 256 deletions

View File

@@ -2,9 +2,16 @@
namespace app;
use app\model\UploadFiles as AppUploadFiles;
use think\facade\Filesystem;
class UploadFiles
{
public static function add()
{
return new AppUploadFiles();
}
public static function create($data,$allowFiled = [],$replace = false)
{
return AppUploadFiles::create($data,$allowFiled,$replace);
@@ -26,8 +33,15 @@ class UploadFiles
]);
}
public static function clear()
public static function clear($id)
{
$model_file = AppUploadFiles::find($id);
$model_file->clear_time = time();
$model_file->status = 3;
$model_file->save();
return Filesystem::delete($model_file->getData('save_name'));
}
}

View File

@@ -3,9 +3,8 @@
namespace app\admin\controller;
use app\model\Admin as AppAdmin;
use app\model\UploadFiles;
use app\UploadFiles as AppUploadFiles;
use think\facade\View;
use think\Request;
class Admin extends Common
{
@@ -58,8 +57,8 @@ class Admin extends Common
$model_admin = AppAdmin::find($this->adminInfo['id']);
if($model_admin->getData('avatar') != $post_data['avatar']){
UploadFiles::destroy(['save_name'=>$model_admin->getData('avatar')]);
UploadFiles::update(['used_time'=>time()],['save_name'=>$post_data['avatar']]);
AppUploadFiles::delete($model_admin->getData('avatar'));
AppUploadFiles::use($post_data['avatar']);
}

View File

@@ -1,226 +0,0 @@
<?php
namespace app\admin\controller;
use think\Request;
use think\facade\View;
use app\model\App as ModelApp;
use app\model\UploadFiles;
class App extends Common
{
/**
* 显示资源列表
*
* @return \think\Response
*/
public function index()
{
//
$app_list = ModelApp::paginate(10);
View::assign('app_list',$app_list);
return View::fetch();
}
/**
* 显示创建资源表单页.
*
* @return \think\Response
*/
public function create()
{
//
$installed_app_list = ModelApp::column('mark_id');
$app_list = get_app_info();
View::assign('app_list',$app_list);
View::assign('installed_app_list',$installed_app_list);
return View::fetch();
}
/**
* 保存新建的资源
*
* @param \think\Request $request
* @return \think\Response
*/
public function save(Request $request)
{
//
$post_data = $request->post();
$model_app = ModelApp::where('mark_id',$post_data['mark_id'])->find();
if(!empty($model_app)){
return json_message('应用已存在,不能重复创建');
}
$model_app = new ModelApp();
if(!empty($post_data['poster'])){
UploadFiles::update(['userd_time'=>time()],['save_name'=>$post_data['poster']]);
}
if(!empty($post_data['detail'])){
foreach ($post_data['detail'] as $key => $value) {
if(isset($value['insert'])){
if(isset($value['insert']['image'])){
$full_save_name = $value['insert']['image'];
$save_name = de_source_link($full_save_name);
if($save_name){
UploadFiles::update(['used_time'=>time()],['save_name'=>$save_name]);
}
}
}
}
}
$model_app->data($post_data,true);
$model_app->save();
return json_message();
}
/**
* 显示指定的资源
*
* @param int $id
* @return \think\Response
*/
public function read($id)
{
//
}
/**
* 显示编辑资源表单页.
*
* @param int $id
* @return \think\Response
*/
public function edit($id)
{
//
$model_app = ModelApp::find($id);
$app_list = get_app_info();
View::assign('app_list',$app_list);
View::assign('app',$model_app);
return View::fetch();
}
/**
* 保存更新的资源
*
* @param \think\Request $request
* @param int $id
* @return \think\Response
*/
public function update(Request $request, $id)
{
//
//
$post_data = $request->post();
$model_app = ModelApp::where('id',$id)->find();
if(empty($model_app)){
return json_message('应用不存在');
}
if(!empty($post_data['poster'])){
if($post_data['poster'] != $model_app->getData('poster')){
UploadFiles::destroy(['save_name'=>$model_app->getData('poster')]);
UploadFiles::update(['userd_time'=>time()],['save_name'=>$post_data['poster']]);
}
}
if(!empty($post_data['detail'])){
$image_list = [];
$new_image_list = [];
foreach ($model_app->detail as $key => $value) {
if(isset($value['insert'])){
if(isset($value['insert']['image'])){
$full_save_name = $value['insert']['image'];
$save_name = de_source_link($full_save_name);
if($save_name){
$image_list[] = $save_name;
}
}
}
}
foreach ($post_data['detail'] as $key => $value) {
if(isset($value['insert'])){
if(isset($value['insert']['image'])){
$full_save_name = $value['insert']['image'];
$save_name = de_source_link($full_save_name);
if($save_name){
$new_image_list[] = $save_name;
}
}
}
}
$del_image_list = array_diff($image_list,$new_image_list);
foreach ($del_image_list as $key => $value) {
UploadFiles::destroy(['save_name'=>$value]);
}
$add_image_list = array_diff($new_image_list,$image_list);
foreach ($add_image_list as $key => $value) {
UploadFiles::update(['used_time'=>time()],['save_name'=>$value]);
}
}
$model_app->data($post_data,true);
$model_app->save();
return json_message();
}
/**
* 删除指定资源
*
* @param int $id
* @return \think\Response
*/
public function delete($id)
{
//
$model_app = ModelApp::find($id);
if(!empty($model_app->getData('poster'))){
UploadFiles::udpate(['delete_time'=>time()],['save_name'=>$model_app->getData('poster')]);
}
if(!empty($model_app->getData('detail'))){
foreach ($model_app->detail as $key => $value) {
if(isset($value['insert'])){
if(isset($value['insert']['image'])){
$full_save_name = $value['insert']['image'];
$save_name = de_source_link($full_save_name);
if($save_name){
UploadFiles::update(['delete_time'=>time()],['save_name'=>$save_name]);
}
}
}
}
}
$model_app->delete();
return json_message();
}
}

View File

@@ -3,6 +3,7 @@
namespace app\admin\controller;
use app\model\UploadFiles;
use app\UploadFiles as AppUploadFiles;
use think\facade\View;
use think\Request;
@@ -18,9 +19,15 @@ class File extends Common
//
$type = $this->request->param('type',1);
$status = $this->request->param('status','');
$list = UploadFiles::where('type',$type)->order('id desc')->paginate();
$model_list = UploadFiles::where('type',$type)->order('id desc');
if($status != ''){
$model_list->where('status',$status);
}
$list = $model_list->paginate();
View::assign('list',$list);
return View::fetch();
@@ -91,4 +98,11 @@ class File extends Common
{
//
}
public function clear($id)
{
AppUploadFiles::clear($id);
return json_message();
}
}

View File

@@ -6,10 +6,10 @@ use think\Request;
use think\facade\View;
use app\model\SystemConfig;
use think\facade\Cache;
use app\model\UploadFiles;
use EasyWeChat\Factory;
use think\facade\Config;
use app\model\WxPublicAccount;
use app\UploadFiles as AppUploadFiles;
class System extends Common
{
@@ -43,9 +43,9 @@ class System extends Common
foreach ($post_data as $key => $value) {
if(\in_array($key,$upload_files_config)){
$old_save_name = get_system_config($key);
UploadFiles::update(['used_time'=>time()],['save_name'=>$value]);
AppUploadFiles::use($value);
if($old_save_name != $value){
UploadFiles::destroy(['save_name'=>$old_save_name]);
AppUploadFiles::delete($old_save_name);
}
}
if(isset($list[$key])){

View File

@@ -5,8 +5,8 @@ namespace app\api\controller;
use think\Request;
use think\facade\Filesystem;
use think\facade\Config;
use app\model\UploadFiles;
use app\BaseController;
use app\UploadFiles as AppUploadFiles;
class Files extends BaseController
{
@@ -40,7 +40,7 @@ class Files extends BaseController
}
$dir_name = $request->param('dir','data');
$model_file = new UploadFiles();
$model_file = AppUploadFiles::add();
$model_file->file_name = $file->getOriginalName();
$model_file->mime_type = $file->getOriginalMime();
$model_file->ext_name = $file->extension();

View File

@@ -6,8 +6,8 @@ use app\BaseController;
use think\facade\Config;
use EasyWeChat\Factory;
use app\model\WxPublicAccount;
use app\model\UploadFiles;
use app\model\SystemConfig;
use app\UploadFiles as AppUploadFiles;
use think\facade\Cache;
class WxOpen extends BaseController
@@ -58,21 +58,24 @@ class WxOpen extends BaseController
if(!empty($model_auth_account->getData('head_img'))){
UploadFiles::destroy(['save_name'=>$model_auth_account->getData('head_img')]);
AppUploadFiles::delete($model_auth_account->getData('head_img'));
}
$model_auth_account->head_img = \save_url_file($wx_public_account_info['authorizer_info']['head_img'],3);
UploadFiles::update(['used_time'=>time()],['save_name'=>$model_auth_account->getData('head_img')]);
AppUploadFiles::use($model_auth_account->getData('head_img'));
$model_auth_account->service_type_info = $wx_public_account_info['authorizer_info']['service_type_info']['id'];
$model_auth_account->verify_type_info = $wx_public_account_info['authorizer_info']['verify_type_info']['id'];
$model_auth_account->user_name = $wx_public_account_info['authorizer_info']['user_name'];
$model_auth_account->alias = $wx_public_account_info['authorizer_info']['alias'];
if(!empty($model_auth_account->getData('qrcode_url'))){
UploadFiles::destroy(['save_name'=>$model_auth_account->getData('qrcode_url')]);
AppUploadFiles::delete($model_auth_account->getData('qrcode_url'));
}
$model_auth_account->qrcode_url = save_url_file($wx_public_account_info['authorizer_info']['qrcode_url'],2);
UploadFiles::update(['used_time'=>time()],['save_name'=>$model_auth_account->getData('qrcode_url')]);
AppUploadFiles::use($model_auth_account->getData('qrcode_url'));
$model_auth_account->business_info = json_encode($wx_public_account_info['authorizer_info']['business_info']);
$model_auth_account->principal_name = $wx_public_account_info['authorizer_info']['principal_name'];
$model_auth_account->signature = $wx_public_account_info['authorizer_info']['signature'];