From c0e67fa24adfa356dccdb35fad29879c39b69cb7 Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Sat, 5 May 2012 16:49:22 +0200
Subject: [PATCH] fix opening encrypted files from the browser

---
 lib/files.php          | 3 +--
 lib/filesystemview.php | 4 ++--
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/lib/files.php b/lib/files.php
index 107605fc34e..5d4d73630eb 100644
--- a/lib/files.php
+++ b/lib/files.php
@@ -96,6 +96,7 @@ class OC_Files {
 			$zip=false;
 			$filename=$dir.'/'.$files;
 		}
+		@ob_end_clean();
 		if($zip or OC_Filesystem::is_readable($filename)){
 			header('Content-Disposition: attachment; filename="'.basename($filename).'"');
 			header('Content-Transfer-Encoding: binary');
@@ -106,7 +107,6 @@ class OC_Files {
 			}else{
 				$fileData=OC_FileCache::get($filename);
 				header('Content-Type: ' . $fileData['mimetype']);
-				header('Content-Length: ' . $fileData['size']);
 			}
 		}elseif($zip or !OC_Filesystem::file_exists($filename)){
 			header("HTTP/1.0 404 Not Found");
@@ -117,7 +117,6 @@ class OC_Files {
 			header("HTTP/1.0 403 Forbidden");
 			die('403 Forbidden');
 		}
-		@ob_end_clean();
 		if($zip){
 			$handle=fopen($filename,'r');
 			if ($handle) {
diff --git a/lib/filesystemview.php b/lib/filesystemview.php
index ac5a0a3bff5..b62bb82c699 100644
--- a/lib/filesystemview.php
+++ b/lib/filesystemview.php
@@ -137,9 +137,9 @@ class OC_FilesystemView {
 	}
 	public function readfile($path){
 		@ob_end_clean();
-		$handle=$this->fopen($path,'r');
+		$handle=$this->fopen($path,'rb');
 		if ($handle) {
-			$chunkSize = 8*1024;// 1 MB chunks
+			$chunkSize = 8192;// 8 MB chunks
 			while (!feof($handle)) {
 				echo fread($handle, $chunkSize);
 				flush();
-- 
GitLab