Kaynağa Gözat

Protect the download of documents against spurious blank lines coming from nowhere !!

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@2217 a333f486-631f-4898-b8df-5754b55c2be0
dflaven 12 yıl önce
ebeveyn
işleme
a3c48b8fd8
1 değiştirilmiş dosya ile 8 ekleme ve 1 silme
  1. 8 1
      pages/ajax.render.php

+ 8 - 1
pages/ajax.render.php

@@ -829,6 +829,7 @@ try
 catch (Exception $e)
 {
 	echo $e->GetMessage();
+	echo "<p>Debug trace: <pre>".print_r($e->getTrace(), true)."</pre></p>\n";
 	IssueLog::Error($e->getMessage());
 }
 
@@ -856,6 +857,12 @@ function DownloadDocument(WebPage $oPage, $sClass, $id, $sAttCode, $sContentDisp
 		$oDocument = $oObj->Get($sAttCode);
 		if (is_object($oDocument))
 		{
+			// Make sure there is NO output at all before our content, otherwise the document will be corrupted
+			$sPreviousContent = ob_get_clean();
+			if (trim($sPreviousContent) != '')
+			{
+				IssueLog::Error("Output already started before downloading file:\nContent was:'$sPreviousContent'\n");
+			}
 			$oPage->SetContentType($oDocument->GetMimeType());
 			$oPage->SetContentDisposition($sContentDisposition,$oDocument->GetFileName());
 			$oPage->add($oDocument->GetData());
@@ -866,4 +873,4 @@ function DownloadDocument(WebPage $oPage, $sClass, $id, $sAttCode, $sContentDisp
 		$oPage->p($e->getMessage());
 	}
 }
-?>
+?>