summaryrefslogtreecommitdiffstats
path: root/files
diff options
context:
space:
mode:
authorRobin <robin@Amaya.(none)>2010-04-04 16:50:04 +0200
committerRobin <robin@Amaya.(none)>2010-04-04 16:50:04 +0200
commit7657926a602a524cf651e7e2b95a3369261fbde1 (patch)
tree1462f20e771e417a17421b1f9d2f8b36ca1742d7 /files
parente658a0025895d5aecc2c067234c5120cc21a63a2 (diff)
downloadnextcloud-server-7657926a602a524cf651e7e2b95a3369261fbde1.tar.gz
nextcloud-server-7657926a602a524cf651e7e2b95a3369261fbde1.zip
some cleanup in ajax fronted, give error message before starting an upload that is to big
Diffstat (limited to 'files')
-rw-r--r--files/open_file.php63
1 files changed, 63 insertions, 0 deletions
diff --git a/files/open_file.php b/files/open_file.php
new file mode 100644
index 00000000000..933efa51e1e
--- /dev/null
+++ b/files/open_file.php
@@ -0,0 +1,63 @@
+<?php
+/**
+* ownCloud - ajax frontend
+*
+* @author Robin Appelman
+* @copyright 2010 Robin Appelman icewind1991@gmail.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+//not this file is for getting files themselves, get_files.php is for getting a list of files.
+
+require_once('../inc/lib_base.php');
+
+function get_mime_type($filename, $mimePath = '../etc') {
+ $fileext = substr(strrchr($filename, '.'), 1);
+ if (empty($fileext)) return (false);
+ $regex = "/^([\w\+\-\.\/]+)\s+(\w+\s)*($fileext\s)/i";
+ $lines = file("$mimePath/mime.types");
+ foreach($lines as $line) {
+ if (substr($line, 0, 1) == '#') continue; // skip comments
+ $line = rtrim($line) . " ";
+ if (!preg_match($regex, $line, $matches)) continue; // no match to the extension
+ return ($matches[1]);
+ }
+ return (false); // no match at all
+}
+
+$file=$_GET['file'];
+$dir=(isset($_GET['dir']))?$_GET['dir']:'';
+if(strstr($file,'..') or strstr($dir,'..')){
+ die();
+}
+$filename=$CONFIG_DATADIRECTORY.'/'.$dir.'/'.$file;
+// $ftype='application/octet-stream';
+// $finfo=new finfo(FILEINFO_MIME);
+// $fres=@$finfo->file($filename);
+// if (is_string($fres) && !empty($fres)) {
+// $ftype = $fres;
+// }
+$ftype=get_mime_type($filename);
+ob_end_clean();
+// echo $ftype;
+// die();
+header('Content-Type: '.$ftype);
+header('Expires: 0');
+header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
+header('Pragma: public');
+header('Content-Length: ' . filesize($filename));
+readfile($filename);
+?> \ No newline at end of file