1: <?php
2:
3: /**
4: * SystemFineImUploadHandler class to work with ajaxfineupload.php endpoint
5: * to facilitate uploads for the system image manager
6: *
7: * Do not use or reference this directly from your client-side code.
8: * Instead, this should be required via the endpoint.php or endpoint-cors.php
9: * file(s).
10: *
11: * @license MIT License (MIT)
12: * @copyright Copyright (c) 2015-present, Widen Enterprises, Inc.
13: * @link https://github.com/FineUploader/php-traditional-server
14: *
15: * The MIT License (MIT)
16: *
17: * Copyright (c) 2015-present, Widen Enterprises, Inc.
18: *
19: * Permission is hereby granted, free of charge, to any person obtaining a copy
20: * of this software and associated documentation files (the "Software"), to deal
21: * in the Software without restriction, including without limitation the rights
22: * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
23: * copies of the Software, and to permit persons to whom the Software is
24: * furnished to do so, subject to the following conditions:
25: *
26: * The above copyright notice and this permission notice shall be included in all
27: * copies or substantial portions of the Software.
28: *
29: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
30: * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
31: * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
32: * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
33: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
34: * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
35: * SOFTWARE.
36: */
37:
38: class SystemFineAvatarUploadHandler extends SystemFineUploadHandler
39: {
40: /**
41: * XoopsFineAvatarUploadHandler constructor.
42: * @param stdClass $claims claims passed in JWT header
43: */
44: public function __construct(\stdClass $claims)
45: {
46: parent::__construct($claims);
47: $this->allowedMimeTypes = array('image/gif', 'image/jpeg', 'image/png');
48: $this->allowedExtensions = array('gif', 'jpeg', 'jpg', 'png');
49: }
50:
51: protected function storeUploadedFile($target, $mimeType, $uuid)
52: {
53: $pathParts = pathinfo($this->getName());
54: $avatarName = uniqid('savt', true) . '.' . strtolower($pathParts['extension']);
55: $avatarNicename = str_replace(array('_','-'), ' ', $pathParts['filename']);
56: $avatarPath = XOOPS_ROOT_PATH . '/uploads/avatars/' . $avatarName;
57:
58: if (false === move_uploaded_file($_FILES[$this->inputName]['tmp_name'], $avatarPath)) {
59: return false;
60: }
61: /** @var XoopsAvatarHandler $avt_handler */
62: $avt_handler = xoops_getHandler('avatar');
63: $avatar = $avt_handler->create();
64:
65: $avatar->setVar('avatar_file', 'avatars/' . $avatarName);
66: $avatar->setVar('avatar_name', $avatarNicename);
67: $avatar->setVar('avatar_mimetype', $mimeType);
68: $avatar->setVar('avatar_created', time());
69: $avatar->setVar('avatar_display', 1);
70: $avatar->setVar('avatar_weight', 0);
71: $avatar->setVar('avatar_type', 's');
72: if (!$avt_handler->insert($avatar)) {
73: return array(
74: 'error' => sprintf(_FAILSAVEIMG, $avatar->getVar('avatar_name'))
75: );
76: }
77: return array('success'=> true, "uuid" => $uuid);
78: }
79: }
80: