public function index() { $mfile = new Model_File($this->config); if (isset($_GET["filename"])) { $filename = $_GET["filename"]; $data = $mfile->getMD5FromName($filename); if (count($data) > 0) { $fn = $data[0]["md5"]; $file = $this->registry["rootPublic"] . $this->registry["path"]["upload"] . $fn; if (file_exists($file)) { $filename = str_replace(" ", "_", $filename); header("Content-Type: application/octet-stream"); header("Accept-Ranges: bytes"); header("Content-Length: " . filesize($file)); header("Content-Disposition: attachment; filename=" . $filename); readfile($file); } else { echo $this->view->render("fileNotExist", array()); } } else { echo $this->view->render("fileNotExist", array()); } } else { echo $this->view->render("fileNotExist", array()); } exit; }
public function index() { $this->view->setTitle("Sydorenkovd Filemanager"); $file = new Model_File(); $file->showTree(0); if (isset($_GET["id"])) { $fm =& $_SESSION["fm"]; if ($_GET["id"] == "0") { $fm["dir"] = 0; $fm["dirname"] = "/"; } else { if (is_numeric($_GET["id"])) { $fm["dir"] = $_GET["id"]; $dirname = $file->getNameFromDir($_GET["id"]); $fm["dirname"] = $dirname[0]["name"]; } else { $fm["dir"] = 0; $fm["dirname"] = "/"; } } } $this->view->setLeftContent($this->view->render("block_left", array("tree" => $file->getTree()))); $this->view->setBottom($this->view->render("block_bottom", array())); $this->view->index(array("session_name" => session_name(), "session_id" => session_id(), "maxUploadSize" => $this->registry["fm"]["maxUploadSize"])); }
public function index() { $this->view->setTitle("Файловый менеджер"); $file = new Model_File($this->config); $file->showTree(0); if (isset($_GET["id"])) { $fm =& $_SESSION["fm"]; if ($_GET["id"] == "0") { $fm["dir"] = 0; $fm["dirname"] = "/"; } else { if (is_numeric($_GET["id"])) { $fm["dir"] = $_GET["id"]; $dirname = $file->getNameFromDir($_GET["id"]); $fm["dirname"] = $dirname[0]["name"]; } else { $fm["dir"] = 0; $fm["dirname"] = "/"; } } } $this->view->setLeftContent($this->view->render("block_left", array("tree" => $file->getTree()))); $this->view->setAdvBottomPanel($this->view->render("block_bottom", array())); $this->view->index(array("session_name" => session_name(), "session_id" => session_id(), "maxUploadSize" => $this->config["fm"]["maxUploadSize"])); $this->view->showPage(); }
function createdir($param) { $mfile = new Model_File($this->config); $mfile->createDir($param[0], $param[1]); $did = $mfile->getDid(); $mfile->addDirRight($did, '{"frall":"2"}'); return $did; }
/** * Get additional content data selected * * @param $result = Query result */ public static function post_find($result) { if ($result !== null) { if (is_array($result)) { foreach ($result as $item) { // It will first check if we already have result in temporary result, // and only execute query if we dont. That way we dont have duplicate queries // Get content images $item->get_images = static::lazy_load(function () use($item) { return Model_Image::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'images'); // Get content files $item->get_files = static::lazy_load(function () use($item) { return Model_File::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'files'); // Get content videos $item->get_videos = static::lazy_load(function () use($item) { return Model_Video::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'videos'); } } } // return the result return $result; }
public function before_delete(\Orm\Model $obj) { // delete profile image. if (conf('upload.types.img.types.m.save_as_album_image') && $obj->file_name && ($file = \Model_File::get4name($obj->file_name))) { $file->delete(); } }
public function before_delete(\Orm\Model $obj) { // カバー写真の確認 & 削除 if (!($album = \Album\Model_Album::find($obj->album_id))) { throw new \FuelException('Invalid album id.'); } if ($album->cover_album_image_id == $obj->id) { $album->cover_album_image_id = null; $album->save(); } // プロフィール写真の確認 & 削除 if ($album->foreign_table == 'member') { if ($album->member->file_name == $obj->file_name) { $album->member->file_name = null; $album->member->save(); } // timeline 投稿の削除 if (is_enabled('timeline')) { \Timeline\Model_Timeline::delete4foreign_table_and_foreign_ids('album_image', $obj->id); } } if (is_enabled('timeline')) { // timeline_child_data の削除 \Timeline\Model_TimelineChildData::delete4foreign_table_and_foreign_ids('album_image', $obj->id); // timeline view cache の削除 if (is_enabled('note') && \Config::get('timeline.articles.cache.is_use') && $obj->album->foreign_table == 'note') { \Timeline\Site_Model::delete_note_view_cache4album_image_id($obj->id); } } // file 削除 if ($file = \Model_File::get4name($obj->file_name)) { $file->delete(); } }
public static function save_profile_image(Model_Member $member, $file_path = null) { if (conf('upload.types.img.types.m.save_as_album_image')) { $album_id = \Album\Model_Album::get_id_for_foreign_table($member->id, 'member'); list($album_image, $file) = \Album\Model_AlbumImage::save_with_relations($album_id, $member, conf('public_flag.maxRange'), $file_path, 'album_image_profile'); $member->file_name = $album_image->file_name; $member->save(); } else { if ($member->file_name) { Model_File::delete_with_timeline($member->file_name); } $options = Site_Upload::get_uploader_options($member->id); $uploadhandler = new Site_Uploader($options); $file = $uploadhandler->save($file_path); if (!empty($file->error)) { throw new FuelException($file->error); } $member->file_name = $file->name; $member->save(); // timeline 投稿 if (is_enabled('timeline')) { \Timeline\Site_Model::save_timeline($member->id, conf('public_flag.maxRange'), 'profile_image', $file->id, $member->updated_at); } } return $file; }
public function get_file() { if (empty($this->file_id)) { return 'nw'; } return \Model_File::get_name($this->file_id); }
public static function recalculate_filesize_total($member_id = 0) { $filesize_total = Model_File::calc_filesize_total($member_id); $member = self::find($member_id); $member->filesize_total = $filesize_total; $member->save(); return $filesize_total; }
protected function setUp() { if (!($this->files = \Model_File::find('all'))) { \Util_Develop::output_test_info(__FILE__, __LINE__); $this->markTestSkipped('No data.'); } $this->is_save_db = conf('upload.storageType') == 'db'; }
public function action_delete($id = null) { if ($file = Model_File::find($id)) { $file->delete(); Session::set_flash('success', e('Deleted file #' . $id)); } else { Session::set_flash('error', e('Could not delete file #' . $id)); } Response::redirect('site/files'); }
protected static function get_location(\Album\Model_AlbumImage $obj) { if (!($file = \Model_File::get4name($obj->file_name))) { return false; } if (!$file->exif) { return false; } $exif = unserialize($file->exif); return \Util_Exif::get_location($exif); }
function performImport() { parent::performImport(); $this->createThumbnails(); // Now that the origninal is imported, lets generate thumbnails /* $this->performImport(); $this->update(); $this->afterImport(); */ return $this; }
/** * Create an alternative as_array method * create a sizes array with src key * @return type */ public function as_array() { $array = parent::as_array(); if (isset($this->file) && isset($this->sizes)) { $sizes = array(); foreach ($this->sizes as $size => $data) { $data['src'] = $this->src($size); $sizes[$size] = $data; } $array['sizes'] = $sizes; } return $array; }
protected function delete_stored_file(\Orm\Model $obj) { if (conf('upload.storageType') == 'normal') { return; } if ($this->_is_tmp && \Model_File::get4name($obj->name)) { return; } if (conf('upload.storageType') == 'S3') { return \Site_S3::delete($obj->name, 'img') && \Site_S3::delete($obj->name, 'file'); } if (!($file_bin = \Model_FileBin::get4name($obj->name))) { return; } return $file_bin->delete(); }
public function moveAction() { $oStorage = new File_Storage(); $sHost = $this->getParam('host'); $iCnt = Model_File::query('SELECT COUNT(*) FROM t_file', 'one'); for ($i = 0; $i < $iCnt; $i += 200) { $aList = Model_File::query("SELECT * FROM t_file LIMIT {$i},200"); foreach ($aList as $aRow) { $sFileKey = $aRow['sKey'] . '.' . $aRow['sExt']; $sUrl = $sHost . '/view/' . $sFileKey; $sContent = file_get_contents($sUrl); $sDestFile = $oStorage->directSaveFile($aRow['sKey'], $sContent); echo "{$sUrl} => {$sDestFile}\n"; } } }
public static function get_album_image_display_name(Model_AlbumImage $album_image, $default = '', $is_accept_hash_filename = false) { if (isset($album_image->name) && strlen($album_image->name)) { return $album_image->name; } if (!\Config::get('album.isDisplayOriginalFileName')) { return $default; } $file = \Model_File::get4name($album_image->file_name); if ($file && isset($file->original_filename) && strlen($file->original_filename)) { return $file->original_filename; } if ($is_accept_hash_filename) { return $album_image->file_name; } return term('album_image'); }
public function test_check_real_file_info() { $raw_file_dir_path = conf('upload.types.img.raw_file_path'); if (!file_exists($raw_file_dir_path) || !($file_paths = Util_file::get_file_recursive($raw_file_dir_path))) { \Util_Develop::output_test_info(__FILE__, __LINE__); $this->markTestSkipped('No data.'); } foreach ($file_paths as $file_path) { $file_info = File::file_info($file_path); $file_name = \Site_Upload::get_filename_from_file_path($file_path); $file = Model_File::get4name($file_name); // file に対応する Model_File が存在する $this->assertNotEmpty($file); // path の確認 $this->assertEquals(trim(\Site_Upload::get_filepath_prefix_from_filename($file_name), '/'), Util_file::get_path_partial($file_info['dirname'], 2)); // type の確認 $this->assertEquals($file->type, $file_info['mimetype']); // size の確認 $this->assertEquals($file->filesize, $file_info['size']); } }
public function get_file_objects_from_related_model($model_objs, $image_names_posted = array()) { $files = array(); if (!$model_objs) { return $files; } $key = Util_Array::get_first_key($model_objs); $table = $model_objs[$key]->table(); $need_member_id_tables = array('album_image'); if (in_array($table, $need_member_id_tables) && !$this->options['member_id']) { throw new \FuelException('Need member_id.'); } $file_cate = $model_objs[$key]->get_image_prefix(); $cache_size = conf('upload.types.img.types.' . $file_cate . '.sizes.thumbnail'); foreach ($model_objs as $model_obj) { $file_name = $this->remove_filename_prefix($model_obj->file_name); if (!($file = $this->get_file_object($file_name))) { continue; } $file_obj = Model_File::get4name($model_obj->file_name); $file->is_tmp = false; $file->name_prefix = $this->options['filename_prefix']; $file->id = (int) $model_obj->id; $file->original_name = $file_obj->original_filename; $file->thumbnail_uri = Site_Upload::get_uploaded_file_path($model_obj->file_name, $cache_size, 'img', false, true); $file->description = $model_obj->name; if (isset($image_names_posted[$model_obj->id]) && strlen($image_names_posted[$model_obj->id])) { $file->description = $image_names_posted[$model_obj->id]; } if (!empty($this->options['accept_sizes'])) { $file->accept_sizes = $this->options['accept_sizes']; } $files[] = $file; } return $files; }
/** * Get additional content data selected * * @param $result = Query result */ public static function post_find($result) { if ($result !== null) { if (is_array($result)) { foreach ($result as $item) { // It will first check if we already have result in temporary result, // and only execute query if we dont. That way we dont have duplicate queries // Get content images $item->get_images = static::lazy_load(function () use($item) { return Model_Image::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'images'); // Get content files $item->get_files = static::lazy_load(function () use($item) { return Model_File::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'files'); // Get content videos $item->get_videos = static::lazy_load(function () use($item) { return Model_Video::find(array('where' => array('content_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'videos'); // Get content children $item->get_children = static::lazy_load(function () use($item) { return Model_Casestudy::find(array('where' => array('parent_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'children'); // Get content accordions $item->get_accordions = static::lazy_load(function () use($item) { return Model_Accordion::find(array('where' => array('parent_id' => $item->id), 'order_by' => array('sort' => 'asc'))); }, $item->id, 'accordions'); // Get content children $item->get_seo = static::lazy_load(function () use($item) { return Model_Seo::find_one_by_content_id($item->id); }, $item->id, 'seo', 'object'); // Get related products $item->get_related_products = static::lazy_load(function () use($item) { $related = Model_Application_To_Related::find(function ($query) use($item) { return $query->where('application_id', $item->id); }, 'related_id'); if (!empty($related)) { $related = '(' . implode(',', array_keys($related)) . ')'; return \Product\Model_Product::find(function ($query) use($related, $item) { $query->where('id', 'IN', \DB::expr($related)); $query->where('id', '<>', $item->id); $query->order_by('sort', 'asc'); return $query; }, 'id'); } return array(); }, $item->id, 'related_products'); // Get hotspot images $item->get_hotspot = static::lazy_load(function () use($item) { $return = new \stdClass(); $return->images = Model_Application_Image::find_by_application_id($item->id); return $return; }, $item->id, 'hotspot', 'object'); } } } // return the result return $result; }
public static function get_timeline_images($type, $foreign_id, $timeline_id = null, $access_from = null, $is_detail = false) { // defaults $images = array(); $images['file_cate'] = 'ai'; $images['size'] = 'N_M'; $images['column_count'] = 3; switch ($type) { case \Config::get('timeline.types.album_image_profile'): $images['list'] = array(); if ($list = \Album\Model_AlbumImage::check_authority($foreign_id)) { $images['list'][] = $list; $images['column_count'] = 2; } break; case \Config::get('timeline.types.profile_image'): $images['list'] = array(); if ($list = \Model_File::find($foreign_id)) { $images['list'][] = $list; $images['file_cate'] = 'm'; $images['size'] = 'LL'; $images['column_count'] = 2; } break; case \Config::get('timeline.types.note'): list($images['list'], $images['count_all']) = \Note\Model_NoteAlbumImage::get_album_image4note_id($foreign_id, $is_detail ? 0 : \Config::get('timeline.articles.thumbnail.limit.default'), array('id' => 'asc'), true); $images['parent_page_uri'] = 'note/' . $foreign_id; break; case \Config::get('timeline.types.thread'): list($images['list'], $images['count_all']) = \Thread\Model_ThreadImage::get4thread_id($foreign_id, 3, true); $images['file_cate'] = 't'; $images['size'] = 'M'; $images['column_count'] = 3; $images['parent_page_uri'] = 'thread/' . $foreign_id; break; case \Config::get('timeline.types.album'): case \Config::get('timeline.types.album_image'): $images['list'] = array(); $images['count'] = 0; if ($album_image_ids = Model_TimelineChildData::get_foreign_ids4timeline_id($timeline_id)) { list($images['list'], $images['count']) = \Album\Model_AlbumImage::get_list_and_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('id', 'in', $album_image_ids))), $is_detail ? 0 : 'limit' => \Config::get('timeline.articles.thumbnail.limit.default'), 'order_by' => array('created_at' => 'asc'))); } $images['count_all'] = \Album\Model_AlbumImage::get_list_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('album_id', $foreign_id))))); $images['parent_page_uri'] = 'album/' . $foreign_id; break; case \Config::get('timeline.types.album_image_timeline'): list($images['list'], $images['count']) = \Album\Model_AlbumImage::get_list_and_count(array('where' => \Site_Model::get_where_public_flag4access_from($access_from, array(array('id', 'in', Model_TimelineChildData::get_foreign_ids4timeline_id($timeline_id)))), $is_detail ? 0 : 'limit' => \Config::get('timeline.articles.thumbnail.limit.album_image_timeline'), 'order_by' => array('created_at' => 'asc'))); $images['count_all'] = $images['count']; $images['parent_page_uri'] = 'timeline/' . $timeline_id; break; default: break; } return $images; }
/** * Delete content file * * @param $file_id = File ID * @param $content_id = Content ID */ public function action_delete_file($file_id = false, $content_id = false) { if ($file_id && $content_id) { $files = Model_File::find(array('where' => array('content_id' => $content_id), 'order_by' => array('sort' => 'asc')), 'id'); if ($files) { if (isset($files[$file_id])) { $file = $files[$file_id]; // If there is only one image and image is required if (count($files) == 1) { if (\Config::get('details.file.required', false)) { \Messages::error('You can\'t delete all files. Please add new file in order to delete this one.'); } else { // Reset sort fields \DB::update(Model_File::get_protected('_table_name'))->value('sort', \DB::expr('sort - 1'))->where('sort', '>', $file->sort)->execute(); // Delete file $this->delete_file($file->file); $file->delete(); \Messages::success('File was successfully deleted.'); } } else { // Dont use cover option for files if (FALSE && $file->cover == 1) { \Messages::error('You can\'t delete cover file. Set different file as cover in order to delete this one.'); } else { // Reset sort fields \DB::update(Model_File::get_protected('_table_name'))->value('sort', \DB::expr('sort - 1'))->where('sort', '>', $file->sort)->execute(); // Delete file $this->delete_file($file->file); $file->delete(); // Set another file as cover if cover is deleted if ($file->cover == 1) { $files = Model_File::find(array('where' => array('content_id' => $content_id), 'order_by' => array('sort' => 'asc'))); $files[0]->cover = 1; $files[0]->save(); } \Messages::success('File was successfully deleted.'); } } } else { \Messages::error('File you are trying to delete don\'t exists. Check your url and try again.'); } } else { \Messages::error('File you are trying to delete don\'t exists. Check your url and try again.'); } } \Response::redirect(\Input::referrer(\Uri::create('admin/application/list'))); }
<?php if ($list) { $file_cate = !empty($file_cate) ? $file_cate : 'nw'; $file_uri_base = conf('upload.types.file.tmp.root_path.raw_dir'); if (!empty($title)) { ?> <h4><?php echo $title; ?> </h4> <?php } ?> <ul> <?php foreach ($list as $file) { $file_obj = \Model_File::get4name($file->file_name); $file_uri = Site_Upload::get_uploaded_file_path($file_obj->name, 'raw', 'file', false, true); ?> <li><?php echo anchor($file_uri, $file->name ?: $file_obj->original_filename); ?> </li> <?php } ?> </ul> <?php }
private static function get_album_filesize_total($album_id) { $album_images = Model_AlbumImage::get4album_id($album_id); $size = 0; foreach ($album_images as $album_image) { $file = \Model_File::get4name($album_image->file_name); $size += $file->filesize; } return $size; }
/** * Try delete related thumb file before deleting file entity itself * * @return void */ function beforeDelete() { parent::beforeDelete(); $this->ref('thumb_file_id')->tryDelete(); }
/** * * @param * $p_sKey * @return array */ public function getFileInfo($p_sKey) { $mReturn = []; $aFileInfo = Model_File::getFileByKey($p_sKey); if (!empty($aFileInfo)) { $aFileMeta = Model_FileMeta::getFileMetaByKey($p_sKey); $mReturn = array_merge($aFileInfo, $aFileMeta); } return $mReturn; }
public static function save_images($file_tmps, $parent_id, $parent_id_field, $related_table, $public_flag = null, $type = 'img') { if (!in_array($type, array('img', 'file'))) { throw new InvalidArgumentException('Parameter type is invalid.'); } $moved_files = array(); $related_table_ids = array(); if (!$file_tmps) { return array($moved_files, $related_table_ids); } $model = Site_Model::get_model_name($related_table); $related_table_obj = $model::forge(); if (!($file_cate = $related_table_obj->get_image_prefix())) { throw new \InvalidArgumentException('Parameter $related_table is invalid.'); } $new_filepath_prefix = Site_Upload::get_filepath_prefix($file_cate, $parent_id); $new_filename_prefix = Site_Upload::convert_filepath2filename($new_filepath_prefix); $is_save_storage = conf('upload.storageType') != 'normal'; if (!$is_save_storage) { $new_file_dir = Site_Upload::get_uploaded_path('raw', 'img', true, false, $new_filepath_prefix); if (!Site_Upload::check_and_make_uploaded_dir($new_file_dir, conf('upload.check_and_make_dir_level'), conf('upload.mkdir_mode'))) { throw newFuelException('Failed to make save dirs.'); } } foreach ($file_tmps as $id => $file_tmp) { $old_file_path = Site_Upload::get_uploaded_file_path($file_tmp->name, 'raw', 'img', true); $moved_files[$file_tmp->id] = array('from' => $old_file_path); if (!$is_save_storage) { $new_file_path = $new_file_dir . $file_tmp->name; Util_file::move($old_file_path, $new_file_path); $moved_files[$file_tmp->id]['to'] = $new_file_path; $moved_files[$file_tmp->id]['filepath_prefix'] = $new_filepath_prefix; } if ($type == 'img') { $moved_files[$file_tmp->id]['from_thumbnail'] = Site_Upload::get_uploaded_file_path($file_tmp->name, 'thumbnail', 'img', true); } $file = Model_File::move_from_file_tmp($file_tmp, $new_filename_prefix, $type); $related_table_obj = $model::forge(); $related_table_obj->{$parent_id_field} = $parent_id; $related_table_obj->file_name = $file->name; $related_table_obj->name = $file_tmp->description; $related_table_obj->shot_at = !empty($file->shot_at) ? $file->shot_at : date('Y-m-d H:i:s'); if (!is_null($public_flag)) { $related_table_obj->public_flag = $public_flag; } $related_table_obj->save(); $related_table_ids[] = $related_table_obj->id; } return array($moved_files, $related_table_ids); }
/** * * @return boolean */ public function save() { $result = parent::save(); $this->rebuild_blocks(); return $result; }
public static function delete_album_image_multiple4ids($album_image_ids = array(), $with_delete_timeline = false) { if (!is_array($album_image_ids)) { $album_image_ids = (array) $album_image_ids; } $delete_target_notice_cache_member_ids = array(); $delete_target_timeline_ids = array(); $writable_connection = \MyOrm\Model::connection(true); \DBUtil::set_connection($writable_connection); \DB::start_transaction(); foreach ($album_image_ids as $album_image_id) { if (is_enabled('notice')) { \Notice\Site_NoOrmModel::delete_member_watch_content_multiple4foreign_data('album_image', $album_image_id); $notice_ids = \Notice\Site_NoOrmModel::get_notice_ids4foreign_data('album_image', $album_image_id); $delete_target_notice_cache_member_ids += \Notice\Site_NoOrmModel::get_notice_status_member_ids4notice_ids($notice_ids); \Notice\Site_NoOrmModel::delete_notice_multiple4ids($notice_ids); } if (is_enabled('timeline') && $with_delete_timeline) { $delete_target_timeline_ids += \timeline\site_noormmodel::delete_timeline_multiple4foreign_data('album_image', $album_image_id); } } $file_names = \Util_Orm::conv_col2array(Model_AlbumImage::get4ids($album_image_ids), 'file_name'); \DB::delete('album_image')->where('id', 'in', $album_image_ids)->execute(); \DB::commit_transaction(); \DBUtil::set_connection(null); \DB::start_transaction(); if ($files = \Model_File::get4names($file_names)) { foreach ($files as $file) { $file->delete(); } } \DB::commit_transaction(); // delete caches if ($delete_target_notice_cache_member_ids) { foreach ($delete_target_notice_cache_member_ids as $member_id) { \Notice\Site_Util::delete_unread_count_cache($member_id); } } if ($delete_target_timeline_ids) { foreach ($delete_target_timeline_ids as $timeline_id) { \Timeline\Site_Util::delete_cache($timeline_id); } } }