/** * Move a file between sources * * @param Assets_base_source $old_source * @param Assets_base_source $new_source * @param $file_id * @param $folder_id * @param string $action to take if conflict exists * @return array * @throws Exception */ private function _move_file_between_sources(Assets_base_source $old_source, Assets_base_source $new_source, $file_id, $folder_id, $action) { $file_to_move = $old_source->get_file($file_id); $local_file = $file_to_move->get_local_copy(); $result = $new_source->transfer_file_into_source($local_file, $folder_id, $file_to_move, $action); if (isset($result['success'])) { if ($old_source->finalize_outgoing_transfer($file_to_move)) { if (Assets_helper::get_kind($result['path']) == 'image') { $new_source->post_upload_image_actions($file_id, $local_file); } @unlink($local_file); return array('success' => TRUE, 'new_path' => $file_id); } else { throw new Exception(lang('invalid_source_path')); } } else { return $result; } }