2010-12-08 33 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,如果它不是一个新的图像?