UploadController.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: NODELOG
  5. * Date: 16/7/16
  6. * Time: 上午1:46
  7. */
  8. namespace common\modules\attachment\actions;
  9. use Yii;
  10. use yii\helpers\Url;
  11. use yii\web\Controller;
  12. class UploadController extends Controller
  13. {
  14. public $enableCsrfValidation = false;
  15. public function actions()
  16. {
  17. return [
  18. 'redactor-files-get' => [
  19. 'class' => GetAction::className(),
  20. 'type' => 'files',
  21. ],
  22. 'redactor-image-upload' => [
  23. 'class' => UploadAction::className(),
  24. 'path' => date('Ymd'),
  25. 'callback' => function($result) {
  26. return !isset($result['files'][0]['error']) ? [
  27. 'filelink' => $result['files'][0]['url']
  28. ] : [
  29. 'error' => $result['files'][0]['error']
  30. ];
  31. }
  32. ],
  33. 'redactor-images-get' => [
  34. 'class' => GetAction::className(),
  35. 'type' => 'images',
  36. ],
  37. 'redactor-file-upload' => [
  38. 'class' => UploadAction::className(),
  39. 'path' => date('Ymd'),
  40. 'uploadOnlyImage' => false,
  41. 'callback' => function($result) {
  42. return !isset($result['files'][0]['error']) ? [
  43. 'filelink' => $result['files'][0]['url'],
  44. 'filename' => $result['files'][0]['filename']
  45. ] : [
  46. 'error' => $result['files'][0]['error']
  47. ];
  48. }
  49. ],
  50. 'image-upload' => [
  51. 'class' => UploadAction::className(),
  52. 'path' => date('Ymd'),
  53. ],
  54. 'avatar-upload' => [
  55. 'class' => UploadAction::className(),
  56. 'path' => 'avatar/' . Yii::$app->user->id,
  57. 'validatorOptions' => ['minWidth' => 100, 'minHeight' => 100, 'underWidth' => '图片宽高不要小于100x100', 'underHeight' => '图片宽高不要小于100x100']
  58. ],
  59. 'file-upload' => [
  60. 'class' => UploadAction::className(),
  61. 'path' => date('Ymd'),
  62. 'uploadOnlyImage' => false
  63. ],
  64. 'images-upload' => [
  65. 'class' => UploadAction::className(),
  66. 'path' => date('Ymd'),
  67. 'multiple' => true,
  68. ],
  69. 'backend-files-upload' => [
  70. 'class' => UploadAction::className(),
  71. 'path' => date('Ymd'),
  72. 'multiple' => true,
  73. 'uploadOnlyImage' => false,
  74. 'itemCallback' => function ($result) {
  75. $result['updateUrl'] = Url::to(['/attachment/update', 'id' => $result['id']]);
  76. return $result;
  77. }
  78. ],
  79. 'md-image-upload' => [
  80. 'class' => UploadAction::className(),
  81. 'path' => date('Ymd'),
  82. 'callback' => function($result) {
  83. return !isset($result['files'][0]['error']) ? [
  84. 'success' => 1,
  85. 'url' => $result['files'][0]['url']
  86. ] : [
  87. 'success' => 0,
  88. 'message' => $result['files'][0]['error']
  89. ];
  90. }
  91. ],
  92. 'im-image-upload' => [
  93. 'class' => UploadAction::className(),
  94. 'path' => date('Ymd'),
  95. 'callback' => function($result) {
  96. return !isset($result['files'][0]['error']) ? [
  97. 'code' => 0,
  98. 'msg' => '',
  99. 'data' => [
  100. 'src' => $result['files'][0]['url']
  101. ]
  102. ] : [
  103. 'code' => 0,
  104. 'msg' => $result['files'][0]['error'],
  105. 'data' => (object)[]
  106. ];
  107. }
  108. ],
  109. 'im-file-upload' => [
  110. 'class' => UploadAction::className(),
  111. 'path' => date('Ymd'),
  112. 'uploadOnlyImage' => false,
  113. 'callback' => function($result) {
  114. return !isset($result['files'][0]['error']) ? [
  115. 'code' => 0,
  116. 'msg' => '',
  117. 'data' => [
  118. 'src' => $result['files'][0]['url'],
  119. 'name' => $result['files'][0]['filename']
  120. ]
  121. ] : [
  122. 'code' => 0,
  123. 'msg' => $result['files'][0]['error'],
  124. 'data' => (object)[]
  125. ];
  126. }
  127. ],
  128. 'ueditor' => [
  129. 'class' => 'common\modules\attachment\actions\UEditorAction',
  130. 'config' => [
  131. ],
  132. ],
  133. 'ueditor-catch' => [
  134. 'class' => CatchAction::className(),
  135. 'path' => date('Ymd'),
  136. ],
  137. 'ueditor-image-upload' => [
  138. 'class' => UploadAction::className(),
  139. 'path' => date('Ymd'),
  140. 'uploadParam' => 'upfile',
  141. 'callback' => function($result) {
  142. return !isset($result['files'][0]['error']) ? [
  143. 'state' => 'SUCCESS',
  144. 'url' => $result['files'][0]['url'],
  145. 'title' => $result['files'][0]['name'],
  146. 'original' => $result['files'][0]['name'],
  147. 'type' => $result['files'][0]['type'],
  148. 'size' => $result['files'][0]['size'],
  149. ] : [
  150. 'error' => $result['files'][0]['error']
  151. ];
  152. }
  153. ]
  154. ];
  155. }
  156. public function actionDelete($id)
  157. {
  158. //TODO AttachmentIndex里没有该attachment_id就可以把attachment删了
  159. }
  160. }