无法使用imagejpg上传图片

时间:2017-12-13 05:16:57

标签: php

我使用此功能调整大小并上传图像。

function getExtension($str) {

                     $i = strrpos($str,".");
                     if (!$i) { return ""; } 
                     $l = strlen($str) - $i;
                     $ext = substr($str,$i+1,$l);
                     return $ext;
        }
function createThumbnail($widthbig,$widththumb,$image_directory,$image_directory_thumb,$newfilename,$newfilenamethumb,$source) {

             define ("MAX_SIZE","5000");
             $errors=0;
             //$image =$_FILES["post_images"]["name"];
             //$uploadedfile = $_FILES['file']['tmp_name'];

            if ($newfilename) 
              {
            $file = stripslashes($newfilename);
                    $extension = $this->getExtension($file);
            $extension = strtolower($extension);
            if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) 
            {
                    echo ' Unknown Image extension ';
                    $errors=1;
            }
             else
            {
               $size= filesize($source);

            if ($size > MAX_SIZE*1024)
            {
             echo "You have exceeded the size limit";
             $errors=1;
            }

            if($extension=="jpg" || $extension=="jpeg" )
            {
            //$source = $source;
            $src = imagecreatefromjpeg($source);
            }
            else if($extension=="png")
            {
            //$uploadedfile = $source;
            $src = imagecreatefrompng($source);
            }
            else 
            {
            $src = imagecreatefromgif($source);
            }

            list($width,$height)=getimagesize($source);

            $newwidth=$widthbig;
            $newheight=($height/$width)*$newwidth;
            $tmp=imagecreatetruecolor($newwidth,$newheight);

            $newwidth1=$widththumb;
            $newheight1=($height/$width)*$newwidth1;
            $tmp1=imagecreatetruecolor($newwidth1,$newheight1);

            imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,
             $width,$height);

            imagecopyresampled($tmp1,$src,0,0,0,0,$newwidth1,$newheight1, 
            $width,$height);

            $dirfile = $image_directory. $newfilename;
            $dirfile1 = $image_directory_thumb. $newfilenamethumb;

            if($extension=="jpg" || $extension=="jpeg" )
            {
                $upload = imagejpeg($tmp,$dirfile,100);
                $upload1 = imagejpeg($tmp1,$dirfile1,100);
            }
            else if($extension=="png")
            {
                $upload = imagepng($tmp,$dirfile,100);
                $upload1 = imagepng($tmp1,$dirfile1,100);
            }
            else if($extension=="gif")
            {
                $upload = imagegif($tmp,$dirfile,100);
                $upload1 = imagegif($tmp1,$dirfile1,100);
            }

            imagedestroy($src);
            imagedestroy($tmp);
            imagedestroy($tmp1);
            }
            }
        }

之前,此函数在php 5.x中起作用,但在7中这不起作用,并在i var_dump imagejpg(“xx”,“xx”,“xx”)之后返回null;结果结果是假的。

我尝试在谷歌搜索但没有遇到同样的问题。

这个代码有什么问题,以及如何解决这个问题?

感谢

1 个答案:

答案 0 :(得分:0)

我解决了这个问题:无法上传,因为目标文件夹中的权限被拒绝

更改为

chmod -r 0757 target_dir