mirror of
https://github.com/Karaka-Management/oms-Media.git
synced 2026-02-15 00:38:41 +00:00
Fix media upload path
This commit is contained in:
parent
18f1428fb3
commit
8ece43d521
|
|
@ -178,7 +178,7 @@ class Controller extends ModuleAbstract implements WebInterface
|
||||||
*/
|
*/
|
||||||
public function apiMediaUpload(RequestAbstract $request, ResponseAbstract $response, $data = null)
|
public function apiMediaUpload(RequestAbstract $request, ResponseAbstract $response, $data = null)
|
||||||
{
|
{
|
||||||
$uploads = $this->uploadFiles($request->getFiles(), $request->getAccount(), $request->getData('path') ?? '/Modules/Media/Files');
|
$uploads = $this->uploadFiles($request->getFiles(), $request->getAccount(), $request->getData('path') ?? __DIR__ . '/../../Modules/Media/Files');
|
||||||
|
|
||||||
$ids = [];
|
$ids = [];
|
||||||
foreach($uploads as $file) {
|
foreach($uploads as $file) {
|
||||||
|
|
@ -216,14 +216,13 @@ class Controller extends ModuleAbstract implements WebInterface
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||||
*/
|
*/
|
||||||
public function uploadFiles(array $files, int $account, string $basePath = 'Modules/Media/Files') : array
|
public function uploadFiles(array $files, int $account, string $basePath = '/Modules/Media/Files') : array
|
||||||
{
|
{
|
||||||
$mediaCreated = [];
|
$mediaCreated = [];
|
||||||
|
|
||||||
if (!empty($files)) {
|
if (!empty($files)) {
|
||||||
$upload = new UploadFile();
|
$upload = new UploadFile();
|
||||||
$path = self::createMediaPath($basePath);
|
$upload->setOutputDir(self::createMediaPath($basePath));
|
||||||
$upload->setOutputDir($path);
|
|
||||||
|
|
||||||
$status = $upload->upload($files);
|
$status = $upload->upload($files);
|
||||||
$mediaCreated = self::createDbEntries($status, $account);
|
$mediaCreated = self::createDbEntries($status, $account);
|
||||||
|
|
@ -232,7 +231,7 @@ class Controller extends ModuleAbstract implements WebInterface
|
||||||
return $mediaCreated;
|
return $mediaCreated;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function createMediaPath(string $basePath = 'Modules/Media/Files') : string
|
public static function createMediaPath(string $basePath = '/Modules/Media/Files') : string
|
||||||
{
|
{
|
||||||
$rndPath = str_pad(dechex(rand(0, 65535)), 4, '0', STR_PAD_LEFT);
|
$rndPath = str_pad(dechex(rand(0, 65535)), 4, '0', STR_PAD_LEFT);
|
||||||
return $basePath . '/' . $rndPath[0] . $rndPath[1] . '/' . $rndPath[2] . $rndPath[3];
|
return $basePath . '/' . $rndPath[0] . $rndPath[1] . '/' . $rndPath[2] . $rndPath[3];
|
||||||
|
|
@ -266,7 +265,8 @@ class Controller extends ModuleAbstract implements WebInterface
|
||||||
|
|
||||||
if ($status['status'] === UploadStatus::OK) {
|
if ($status['status'] === UploadStatus::OK) {
|
||||||
$media = new Media();
|
$media = new Media();
|
||||||
$media->setPath(trim($status['path'], '/') . '/' . $status['filename']);
|
|
||||||
|
$media->setPath(self::normalizeDbPath($status['path']) . '/' . $status['filename']);
|
||||||
$media->setName($status['name']);
|
$media->setName($status['name']);
|
||||||
$media->setSize($status['size']);
|
$media->setSize($status['size']);
|
||||||
$media->setCreatedBy($account);
|
$media->setCreatedBy($account);
|
||||||
|
|
@ -279,4 +279,9 @@ class Controller extends ModuleAbstract implements WebInterface
|
||||||
return $media;
|
return $media;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static function normalizeDbPath(string $path) : string
|
||||||
|
{
|
||||||
|
return str_replace('\\', '/', str_replace(realpath(__DIR__ . '/../../'), '', rtrim($path, '/')));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ class UploadFile
|
||||||
$this->interlace($extension, $dest);
|
$this->interlace($extension, $dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
$result[$key]['path'] = $this->outputDir;
|
$result[$key]['path'] = realpath($this->outputDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user