diff --git a/files/open_file.php b/files/open_file.php
index b91f72aaf313d74758f62e7ab7dfa54a5805c97f..ed1a1e47b1a8ecede953cb377e6082ec754b11c6 100644
--- a/files/open_file.php
+++ b/files/open_file.php
@@ -24,12 +24,16 @@
 
 require_once('../inc/lib_base.php');
 
-$file=$_GET['file'];
-$dir=(isset($_GET['dir']))?$_GET['dir']:'';
-if(strstr($file,'..') or strstr($dir,'..')){
-    die();
+if(isset($_GET['path'])){
+	$filename=$_GET['path'];
+}else{
+	$file=$_GET['file'];
+	$dir=(isset($_GET['dir']))?$_GET['dir']:'';
+	$filename=$dir.'/'.$file;
+}
+if(strstr($filename,'..')){
+	die();
 }
-$filename=$dir.'/'.$file;
 $filename=stripslashes($filename);
 $ftype=OC_FILESYSTEM::getMimeType($filename);
 ob_end_clean();