prefection the FileUpload Service
This commit is contained in:
parent
9d68652990
commit
9a7e8c9b1e
|
@ -16,6 +16,7 @@ use Westdc\File\Listener\DefaultFileUploadListener;
|
||||||
class Upload extends AbstractEventManager implements ServiceManagerAwareInterface{
|
class Upload extends AbstractEventManager implements ServiceManagerAwareInterface{
|
||||||
|
|
||||||
protected $serviceManager;
|
protected $serviceManager;
|
||||||
|
protected $defaultListener = false;
|
||||||
|
|
||||||
private $uploadPath = "";
|
private $uploadPath = "";
|
||||||
private $relativePath = "";
|
private $relativePath = "";
|
||||||
|
@ -55,6 +56,7 @@ class Upload extends AbstractEventManager implements ServiceManagerAwareInterfac
|
||||||
{
|
{
|
||||||
$Listener = new DefaultFileUploadListener;
|
$Listener = new DefaultFileUploadListener;
|
||||||
$this->getEventManager()->attachAggregate($Listener);
|
$this->getEventManager()->attachAggregate($Listener);
|
||||||
|
$this->defaultListener = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,11 +81,15 @@ class Upload extends AbstractEventManager implements ServiceManagerAwareInterfac
|
||||||
$file = $files;
|
$file = $files;
|
||||||
|
|
||||||
$results = $this->getEventManager()->trigger('upload.pre', $this, compact('file'));
|
$results = $this->getEventManager()->trigger('upload.pre', $this, compact('file'));
|
||||||
$cache_data = $results->last();
|
|
||||||
|
|
||||||
if($cache_data !== true)
|
if($this->defaultListener === true)
|
||||||
{
|
{
|
||||||
return $cache_data;
|
$cache_data = $results->last();
|
||||||
|
|
||||||
|
if($cache_data !== true)
|
||||||
|
{
|
||||||
|
return $cache_data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$fileService = $this->serviceManager->get('File');
|
$fileService = $this->serviceManager->get('File');
|
||||||
|
@ -94,7 +100,11 @@ class Upload extends AbstractEventManager implements ServiceManagerAwareInterfac
|
||||||
if($dateDirModel !== false)
|
if($dateDirModel !== false)
|
||||||
$this->makeDateDir($dateDirModel);
|
$this->makeDateDir($dateDirModel);
|
||||||
|
|
||||||
$this->setFileName($fileName , $fileService->getFileTextExt($files['name']));
|
if(empty($this->fileName) || empty($fileName))
|
||||||
|
$this->setFileName(NULL , $fileService->getFileTextExt($files['name']));
|
||||||
|
|
||||||
|
if(!empty($fileName))
|
||||||
|
$this->setFileName($fileName , $fileService->getFileTextExt($files['name']));
|
||||||
|
|
||||||
//移动文件
|
//移动文件
|
||||||
$file_path = $this->getUploadPath() . $this->getFileName();
|
$file_path = $this->getUploadPath() . $this->getFileName();
|
||||||
|
@ -112,7 +122,7 @@ class Upload extends AbstractEventManager implements ServiceManagerAwareInterfac
|
||||||
$file_data['file_ext'] = $fileService->getFileTextExt($files['name']);
|
$file_data['file_ext'] = $fileService->getFileTextExt($files['name']);
|
||||||
$file_data['file_mime'] = $fileService->getFileMime($file_path);
|
$file_data['file_mime'] = $fileService->getFileMime($file_path);
|
||||||
|
|
||||||
if(!empty($file_data) && is_array($file_data))
|
if(!empty($this->params) && is_array($this->params))
|
||||||
{
|
{
|
||||||
$file_data = array_merge($file_data,$this->params);
|
$file_data = array_merge($file_data,$this->params);
|
||||||
}
|
}
|
||||||
|
@ -209,18 +219,32 @@ class Upload extends AbstractEventManager implements ServiceManagerAwareInterfac
|
||||||
* @param $fileName
|
* @param $fileName
|
||||||
* @param $fileExt
|
* @param $fileExt
|
||||||
*/
|
*/
|
||||||
public function setFileName($fileName,$fileExt)
|
public function setFileName($fileName,$fileExt = "")
|
||||||
{
|
{
|
||||||
if(!empty($fileName)){
|
if(!empty($fileName)){
|
||||||
$this->fileName = $fileName . "." .$fileExt;
|
|
||||||
|
if(empty($fileExt))
|
||||||
|
{
|
||||||
|
$fileExt = pathinfo($fileName,PATHINFO_EXTENSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(empty($fileExt))
|
||||||
|
$this->fileName = $fileName;
|
||||||
|
else
|
||||||
|
$this->fileName = $fileName . "." .$fileExt;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$tools = $this->serviceManager->get('Tools');
|
$tools = $this->serviceManager->get('Tools');
|
||||||
$uuid = $tools->uuid();
|
$uuid = $tools->uuid();
|
||||||
|
|
||||||
$this->fileName = $uuid . "." . $fileExt;
|
if(empty($fileExt))
|
||||||
|
$this->fileName = $uuid;
|
||||||
|
else
|
||||||
|
$this->fileName = $uuid . "." . $fileExt;
|
||||||
|
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue