public function run() { if (isset($_REQUEST['fid']) && is_numeric($_REQUEST['fid'])) { // Delete from database $file = File::model()->findByPk($_REQUEST['fid']); if (isset($file)) { if ($file->delete()) { // Delete file UploadUtils::deleteFile($file, PlUploadWidget::$fileDir); $result["result"] = 0; } else { $result["result"] = -1; $result["message"] = Yii::t('upload', 'Could not delete file from db'); } } else { $result["result"] = -1; $result["message"] = Yii::t('upload', 'No file with that fid'); } } elseif (isset($_REQUEST['sid']) && is_numeric($_REQUEST['sid'])) { // Delete from session $sessionFiles = Yii::app()->session['temp_files']; $file = File::buildFromArray($sessionFiles[$_REQUEST['sid']]); unset($sessionFiles[$_REQUEST['sid']]); Yii::app()->session['temp_files'] = $sessionFiles; // Delete file UploadUtils::deleteFile($file, PlUploadWidget::$tempDir); $result["result"] = 0; } else { $result["result"] = -1; $result["message"] = Yii::t('upload', 'There is no file id (nor db and no session)'); } echo CJSON::encode($result); exit(0); // To avoid loggers append things to request }
public static function getFileFromSession($sid) { // Store it in session $sessionFiles = Yii::app()->session['temp_files']; foreach ($sessionFiles as $key => $file) { $file_obj = File::buildFromArray($file); if ($file_obj->sid == $sid) { unset(Yii::app()->session['temp_files'][$key]); return $file_obj; } } return null; }
/** Default view (upload widget) */ public function run() { $this->registerScripts(); // File list // Temporal files in session + files associated to the model $tempFiles = array(); $sessionFiles = Yii::app()->session['temp_files']; if (isset($sessionFiles)) { foreach ($sessionFiles as $f) { $tempFiles[] = File::buildFromArray($f); } } if (isset($this->model)) { $files = UploadUtils::findFiles(get_class($this->model), $this->model->getPrimaryKey()); } $files = array_merge($files, $tempFiles); $this->getController()->renderPartial('ext.upload.plupload.views.draggableFileList', array('files' => $files)); // Upload widget $this->render('uploadWidget', array('assetsDir' => $this->assetsUrlBase)); }
public function run() { $files = array(); $entity = $_REQUEST['entity']; $EXid = $_REQUEST['EXid']; Yii::trace("FilePanelAction {$entity} {$EXid}"); // Temporal files in session $tempFiles = array(); $sessionFiles = Yii::app()->session['temp_files']; if (isset($sessionFiles)) { foreach ($sessionFiles as $f) { $tempFiles[] = File::buildFromArray($f); } } if (isset($entity) && isset($EXid)) { $files = File::model()->findAll('entity=:entity AND EXid=:EXid', array(':entity' => $entity, ':EXid' => $EXid)); } $files = array_merge($files, $tempFiles); $this->getController()->renderPartial('ext.upload.plupload.views.draggableFileList', array('files' => $files)); exit(0); // To avoid loggers append things to request }