2010-12-08 41 views
0

我正在嘗試爲我的網站創建縮略圖。我提取使用GD功能不起作用

$chapterZip = new ZipArchive(); 
if ($chapterZip->open($_FILES['chapterUpload']['tmp_name'])) 
    { 
     if($chapterZip->extractTo("Manga/".$_POST['mangaName']."/".$_POST['chapterName'])) 
     { 
     for($i = 0; $i < $chapterZip->numFiles; $i++) { 

,然後依次通過圖像和與第一圖像文件我送之路,是這種方法

function createthumb($source,$output,$new_w,$new_h) 

所有的值都在罰款讀,直到我嘗試使用下面的代碼

if (preg_match("/jpg|jpeg/",$ext)){$src_img=imagecreatefromjpeg($source);} 
    if (preg_match("/png/",$ext)){$src_img=imagecreatefrompng($source);} 
    if (preg_match("/gif/",$ext)){$src_img=imagecreatefromgif($source);} 

正則表達式的先決條件是由該文件滿足和代碼正在跑,然而imagecreate功能無法創建新的文件,我檢查了我的p hpinfo文件來查看GD庫是否啓用,因此簡而言之,我不知道什麼是錯誤的。

http://www.neuromanga.com/phpinfo.php

+0

創建一個新的ZipArchive對象不會提取任何東西......您確定提取的文件存在$ source嗎? – 2010-12-08 00:50:34

+0

圖像正在提取正常我試圖保持代碼簡潔 – dbomb101 2010-12-08 01:12:56

+0

如果你已經提取的文件,你應該使用[getimagesize](http://php.net/manual/en/function.getimagesize.php )來確定文件類型 – Phil 2010-12-08 01:29:15

回答

0

確保GD已正確安裝和功能存在:

<pre> 
<? 
$arr = get_defined_functions(); 
sort($arr['internal']); 
print_r($arr); 
?> 

也。雖然這「創建」了圖像,但您仍然必須將其寫入屏幕或文件才能使用它。在它正在使用imagecreatefrom [.. whatever]的狀態下,它只是您的web應用程序中當前狀態的一個對象,並且尚未渲染用於存儲或顯示。因爲你需要做任何你想做的事情,並使用imagejpegimagegifimagepng來實際將對象渲染回某個目的地。你可以通過執行echo $src_img來測試它,它應該打印如下:Resource id #1

0

確保你的$ source路徑是正確的。什麼是$ src_img,如果它不是一個新的圖像?