You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/11/01 21:49:22 UTC
airavata-php-gateway git commit: file upload creates files under user
home dir
Repository: airavata-php-gateway
Updated Branches:
refs/heads/file-management [created] dbf6db428
file upload creates files under user home dir
Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/dbf6db42
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/dbf6db42
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/dbf6db42
Branch: refs/heads/file-management
Commit: dbf6db4282168ded8d0d965bdc5814a328b091a6
Parents: 8eeb7be
Author: scnakandala <su...@gmail.com>
Authored: Sun Nov 1 15:49:17 2015 -0500
Committer: scnakandala <su...@gmail.com>
Committed: Sun Nov 1 15:49:17 2015 -0500
----------------------------------------------------------------------
app/controllers/DownloadFileController.php | 21 +++++++++++++++++++++
app/libraries/ExperimentUtilities.php | 14 ++++++++++++--
app/routes.php | 3 +++
3 files changed, 36 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/dbf6db42/app/controllers/DownloadFileController.php
----------------------------------------------------------------------
diff --git a/app/controllers/DownloadFileController.php b/app/controllers/DownloadFileController.php
new file mode 100644
index 0000000..99151e8
--- /dev/null
+++ b/app/controllers/DownloadFileController.php
@@ -0,0 +1,21 @@
+<?php
+
+class DownloadFileController extends Controller {
+
+ public function __construct()
+ {
+ $this->beforeFilter('verifylogin');
+ $this->beforeFilter('verifyauthorizeduser');
+ }
+
+ public function downloadFile(){
+ if(Input::has("filePath") ){
+ $filePath = Input::get("filePath");
+ $file= Config::get('pga_config.airavata')["experiment-data-absolute-path"] . "/" . Session::get("username") . "/" . $filePath;
+ $headers = array(
+ 'application/octet-stream',
+ );
+ return Response::download($file, 'gaussian.in.com', $headers);
+ }
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/dbf6db42/app/libraries/ExperimentUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/ExperimentUtilities.php b/app/libraries/ExperimentUtilities.php
index 4f997d0..1c5e0c3 100644
--- a/app/libraries/ExperimentUtilities.php
+++ b/app/libraries/ExperimentUtilities.php
@@ -327,21 +327,31 @@ class ExperimentUtilities
}
}
+ /**
+ * recursively create a long directory path
+ */
+ public static function create_path_recursively($path) {
+ if (is_dir($path)) return true;
+ $prev_path = substr($path, 0, strrpos($path, '/', -2) + 1 );
+ $return = ExperimentUtilities::create_path_recursively($prev_path);
+ return ($return && is_writable($prev_path)) ? mkdir($path) : false;
+ }
public static function create_experiment_folder_path()
{
do {
ExperimentUtilities::$experimentPath = Config::get('pga_config.airavata')['experiment-data-absolute-path'] .
- "/" . str_replace(' ', '', Session::get('username')) . md5(rand() * time()) . '/';
+ "/" . str_replace(' ', '', Session::get('username')) . "/" . md5(rand() * time()) . '/';
} while (is_dir(ExperimentUtilities::$experimentPath)); // if dir already exists, try again
// create upload directory
- if (!mkdir(ExperimentUtilities::$experimentPath)) {
+ if (! ExperimentUtilities::create_path_recursively(ExperimentUtilities::$experimentPath)) {
CommonUtilities::print_error_message('<p>Error creating upload directory!
Please try again later or report a bug using the link in the Help menu.</p>');
$experimentAssemblySuccessful = false;
}
}
+
/**
* Check the uploaded files for errors
*/
http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/dbf6db42/app/routes.php
----------------------------------------------------------------------
diff --git a/app/routes.php b/app/routes.php
index 138f010..8fbd22a 100755
--- a/app/routes.php
+++ b/app/routes.php
@@ -206,6 +206,9 @@ Route::post("admin/add-roles-to-user", "AdminController@addRolesToUser");
Route::post("admin/remove-role-from-user", "AdminController@removeRoleFromUser");
+Route::get("download-file", "DownloadFileController@downloadFile");
+
+
//Super Admin Specific calls
Route::post("admin/add-gateway", "AdminController@addGateway");