Attachment.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. namespace app\system\controller\v1;
  3. use app\BaseController;
  4. use library\services\UtilService as Util;
  5. use app\model\system\Attachment as AttachmentModel;
  6. use library\services\upload\Upload as Upload;
  7. /**
  8. * 图片管理类
  9. * Class Attachment
  10. * @package app\system\controller\v1
  11. */
  12. class Attachment extends BaseController
  13. {
  14. /**
  15. * 显示资源列表
  16. *
  17. * @return \think\Response
  18. */
  19. public function index()
  20. {
  21. $where = Util::getMore([
  22. ['page', 1],
  23. ['limit', 18],
  24. ['pid', 0]
  25. ]);
  26. return app('json')->success(AttachmentModel::getImageList($where));
  27. }
  28. /**
  29. * 删除指定资源
  30. *
  31. * @param string $ids
  32. * @return \think\Response
  33. */
  34. public function delete()
  35. {
  36. $request = app('request');
  37. $ids = $request->post('ids');
  38. $ids = explode(',', $ids);
  39. if (empty($ids))
  40. return app('json')->fail('请选择要删除的图片');
  41. foreach ($ids as $v) {
  42. self::deleteImg($v);
  43. }
  44. return app('json')->success('删除成功');
  45. }
  46. /**
  47. * 图片管理上传图片
  48. * @return \think\response\Json
  49. */
  50. public function upload()
  51. {
  52. [$pid, $file] = Util::getMore([
  53. ['pid', 0],
  54. ['file', 'file']
  55. ], $this->request, true);
  56. try {
  57. $path = make_path('attach', 2, true);
  58. $upload = new Upload(2,config('qiniu')['upload']);
  59. $res = $upload->to($path)->validate()->move($file);
  60. if ($res === false) {
  61. return app('json')->fail($upload->getError());
  62. } else {
  63. $fileInfo = $upload->getUploadInfo();
  64. if ($fileInfo) {
  65. AttachmentModel::attachmentAdd($fileInfo['name'], $fileInfo['size'], $fileInfo['type'], $fileInfo['dir'], $fileInfo['thumb_path'], $pid, 2, $fileInfo['time'], 1, 0);
  66. }
  67. return app('json')->success('上传成功', ['src' => $res->filePath]);
  68. }
  69. } catch (\Exception $e) {
  70. return app('json')->fail($e->getMessage());
  71. }
  72. }
  73. /**删除图片和数据记录
  74. * @param $att_id
  75. */
  76. public function deleteImg($att_id)
  77. {
  78. $attinfo = AttachmentModel::get($att_id);
  79. if ($attinfo) {
  80. try {
  81. $upload = new Upload(2,config('qiniu')['upload']);
  82. $upload->delete($attinfo['name']);
  83. } catch (\Throwable $e) {
  84. }
  85. AttachmentModel::where('att_id', $att_id)->delete();
  86. }
  87. }
  88. /**
  89. * 移动图片分类操作
  90. */
  91. public function moveImageCate()
  92. {
  93. $data = Util::postMore([
  94. 'pid',
  95. 'images'
  96. ]);
  97. if ($data['images'] == '') return app('json')->fail('请选择图片');
  98. if (!$data['pid']) return app('json')->fail('请选择分类');
  99. $res = AttachmentModel::where('att_id', 'in', $data['images'])->update(['pid' => $data['pid']]);
  100. if ($res)
  101. return app('json')->success('移动成功');
  102. else
  103. return app('json')->fail('移动失败!');
  104. }
  105. }