From 77bbf8304fe34c9ea1d156ec81004ae30e67d744 Mon Sep 17 00:00:00 2001 From: ankit agarwal Date: Thu, 24 Mar 2011 12:17:58 +0530 Subject: [PATCH] patch for MDL-26890 --- repository/repository_ajax.php | 32 +++++++++++++++++++++++--------- 1 files changed, 23 insertions(+), 9 deletions(-) diff --git a/repository/repository_ajax.php b/repository/repository_ajax.php index a2d354c..197fa9a 100644 --- a/repository/repository_ajax.php +++ b/repository/repository_ajax.php @@ -202,17 +202,31 @@ switch ($action) { die; } else { if (in_array($repo->options['type'], array('local', 'recent', 'user', 'coursefiles'))) { //TODO: this hardcoding is a really ugly hack (skodak) - $fileinfo = $repo->copy_to_area($source, $itemid, $saveas_path, $saveas_filename); - $info = array(); - $info['file'] = $fileinfo['title']; - $info['id'] = $itemid; - $info['url'] = $CFG->httpswwwroot.'/draftfile.php/'.$fileinfo['contextid'].'/user/draft/'.$itemid.'/'.$fileinfo['title']; - $filesize = $fileinfo['filesize']; - if (($maxbytes!==-1) && ($filesize>$maxbytes)) { + $browser = get_file_browser(); + $params = unserialize(base64_decode($source)); + $contextid = clean_param($params['contextid'], PARAM_INT); + $fileitemid = clean_param($params['itemid'], PARAM_INT); + $filename = clean_param($params['filename'], PARAM_FILE); + $filepath = clean_param($params['filepath'], PARAM_PATH);; + $filearea = clean_param($params['filearea'], PARAM_ALPHAEXT); + $component = clean_param($params['component'], PARAM_ALPHAEXT); + $context = get_context_instance_by_id($contextid); + $file_info = $browser->get_file_info($context, $component, $filearea, $fileitemid, $filepath, $filename); + $filesize=$file_info->get_filesize(); + if (($maxbytes!==-1) && ($filesize>$maxbytes)) { throw new file_exception('maxbytes'); } - echo json_encode($info); - die; + else + { + $fileinfo = $repo->copy_to_area($source, $itemid, $saveas_path, $saveas_filename); + $info = array(); + $info['file'] = $fileinfo['title']; + $info['id'] = $itemid; + $info['url'] = $CFG->httpswwwroot.'/draftfile.php/'.$fileinfo['contextid'].'/user/draft/'.$itemid.'/'.$fileinfo['title']; + $filesize = $fileinfo['filesize']; + echo json_encode($info); + die; + } } // Download file to moodle $file = $repo->get_file($source, $saveas_filename); -- 1.7.3.1.msysgit.0