下面的代碼傳輸,其上從服務器向使用捲曲客戶現場動態創建的圖像。它停止工作近期和一直沒能找出問題所在:回波+ file_get_contents()函數增加了額外的換行符到輸出
// get_image.php
ob_start();
// create a new CURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, 'url/to/image.php');
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// set timeouts
set_time_limit(30);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
// open a stream for writing
$outFile = fopen($fileDestination, 'wb');
curl_setopt($ch, CURLOPT_FILE, $outFile);
// grab file from URL
curl_exec($ch);
fclose($outFile);
// close CURL resource, and free up system resources
curl_close($ch);
ob_end_clean();
//image.php
/*
* Create image based on client site ...
*/
$filePath = 'path/to/image.png'
$imageFile = file_get_contents($filePath);
header("content-type: image/png");
echo $imageFile;
unlink($filePath);
文件get_image.php位於客戶端的網站,並要求設在我的服務器上的文件image.php。
這段代碼運行在客戶網站上的圖像是比原來的約7個字節後,這些字節似乎是換行符。經過幾個小時的調試後,我發現當我回顯$ imageFile時會添加這些字節。如果從結果圖像中手動刪除7個字節,圖像將正確顯示。
沒有引發的錯誤,也不例外。在服務器中創建的映像不會造成問題。在FF唯一的輸出是「形象‘URL /到/ image.php’無法顯示,因爲它包含錯誤」
我不知道是什麼原因造成這一點。非常感謝幫助。
- Onema
UPDATE:
http://files.droplr.com/files/38059844/V5Jd.Screen%20shot%202011-01-12%20at%2012.17.53%20PM.png
http://files.droplr.com/files/38059844/QU4Z.Screen%20shot%202011-01-12%20at%2012.23.37%20PM.png
什麼是在圖像的源代碼中嗎? – 2011-01-12 20:04:28
@Pekka你是指生成圖像的代碼?我們使用GD創建圖像。 – Onema 2011-01-12 20:30:13