diff options
author | Robin <robin@Amaya.(none)> | 2010-04-04 16:50:04 +0200 |
---|---|---|
committer | Robin <robin@Amaya.(none)> | 2010-04-04 16:50:04 +0200 |
commit | 7657926a602a524cf651e7e2b95a3369261fbde1 (patch) | |
tree | 1462f20e771e417a17421b1f9d2f8b36ca1742d7 /files | |
parent | e658a0025895d5aecc2c067234c5120cc21a63a2 (diff) | |
download | nextcloud-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.php | 63 |
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 |