2015-10-01 122 views
0

我正在使用一個PHP縮略圖生成腳本,過去我已經使用過很多次。我目前在沒有問題的情況下使用它,因爲我現在遇到了問題。 該腳本正在處理到一個點。它會生成物理縮略圖並將其保存到預設的緩存目錄中,但不會將調整大小的圖像返回給瀏覽器。 圖像src爲按以下格式:PHP縮略圖生成器未處理縮略圖

<img src="thumbnail.php?file=sample/02.jpg&w=100&h=70&el=0&gd=0" /> 

我證實,圖像存在,並且可以顯示在瀏覽器本身。 此外,PHP腳本加載好,因爲我已通過添加'回聲'來確認它。 我已經在服務器上的多個位置安裝了這個腳本,結果是一樣的。我甚至嘗試過其他版本的PHP縮略圖生成器,並且它們都沒有在瀏覽器中生成調整大小的圖像。

我已經檢查了GD是我的服務器上的活動:

GD Support   enabled 
GD Version   bundled (2.1.0 compatible) 
FreeType Support enabled 
FreeType Linkage with freetype 
FreeType Version 2.4.2 
GIF Read Support enabled 
GIF Create Support enabled 
JPEG Support  enabled 
libJPEG Version  6b 
PNG Support   enabled 
libPNG Version  1.2.44 
WBMP Support  enabled 
XBM Support   enabled 

PHP的版本是29年3月5日

ImageMagick的可用和路徑確認爲'/usr/bin/convert/'

在這裏,你看到的結果是:

http://demos.mitey.co.nz/image_processor/index.php

全部出現破損圖像佔位符代替動態生成縮略圖。 所有相關的權限都被設置爲0777或0755,都嘗試過。 這真的不是一個難以使用的腳本,我有很多次,但我無法調試任何導致它在這種情況下失敗。

任何人有什麼想法可以阻止圖像源正確處理其中包含的PHP? 我已經嘗試了很多不同的東西,我不能再專注於這個問題,並想出其他的東西來嘗試。

+0

日誌中是否有詳細錯誤? ...可能是一個路徑問題... – StefanNch

+0

thumbnail.php的內容是什麼? –

+0

好的......在thumbnail.php的某處你有'echo'strSourceFile:'。 $ var_file;'...刪除它! – StefanNch

回答

0

website 下載最新PHPthumb對於產生拇指看到documentation

不要忘記更改可變根據自己的需要。

$thumbUrl = "somefolder/new.jpg"; 
$resizeWidth = "70"; // in pixels 
$resizeHeight = "70"; // in pixels 

$imageThumb = $directoryPath. "/phpThumb/phpThumb.php?src=" . $thumb1 . "&amp;w=".$resizeWidth."&amp;h=".$resizeHeight."&amp;iar=1&amp;hash=90e9d46c4d138a72574c52e31fbef0dc"; 

echo '<img src="'.$imageThumb.'" alt="filename.jpg" />'; 
+0

已上傳最新版本並在[鏈接]上運行檢查,結果(http://demos.mitey.co.nz/phpThumb/demo/phpThumb.demo.check.php) – Mitey

+0

儘管如此,仍然無法正常工作,請參閱此處[link] (http://demos.mitey.co。nz/phpThumb/demo/phpThumb.demo.demo.php) – Mitey

+0

@Mitey您需要聯繫託管服務提供商以安裝[請參閱phpthumb的ImageMagick](http://phpthumb.sourceforge.net/demo/demo/phpThumb.demo.check .php)查看你的[配置鏈接](http://demos.mitey.co.nz/phpThumb/demo/phpThumb.demo.check.php) – Noman

1

解決方法:我試圖從另一個子域加載圖像到腳本中。我使用的縮略圖腳本聲明允許使用http從另一個域加載圖像,但是它涉及到PHP函數'file_exists',它不能通過http協議工作。我使用'str_replace'刪除了圖像路徑的'http://'部分,並將其替換爲文件系統路徑,即/ home/siteroot /',並且全部按預期工作。當與縮略圖生成腳本在同一個域中的圖像一起使用時,腳本很樂意保留完整的「http://」路徑。沒有有用的錯誤消息指出這一點。

+0

我這樣做的方式是聲明兩個常量,如下所示:'SITE_ROOT' (即'/ home/siteroot /') - 我的來源的完整路徑位置和'SITE_URL'(即'http://demos.mitey.co.nz/') - 我的網站的完整網址。所以,考慮到這個測試案例,當我需要在我的代碼中使用圖像時,我聲明'$ filename = SITE_ROOT。 '路徑/到/圖像/'。 $ image;'我返回'SITE_URL。 '路徑/到/圖像/'。 $圖像;' – StefanNch