2014-01-07 2 views
2

Привет, я новичок в php, и я работаю над загрузкой и обрезкой изображений и сохраняю bth загружаю и обрезал изображение в zend на windows 7, но это дает мне эти ошибки. Пожалуйста, помогите мне решить эти ошибки.Не удалось открыть поток: Нет такого файла или каталога

Warning: imagecreatefromjpeg(public/image/) [<a href='function.imagecreatefromjpeg'>function.imagecreatefromjpeg</a>]: failed to open stream: No such file or directory in C:\wamp\www\ModuleEx.com\application\modules\admin\controllers\IndexController.php on line 64

Warning: imagecopyresampled() expects parameter 2 to be resource, boolean given in C:\wamp\www\ModuleEx.com\application\modules\admin\controllers\IndexController.php on line 68

Warning: imagejpeg() [<a href='function.imagejpeg'>function.imagejpeg</a>]: Unable to open 'public/image/crop/' for writing: No such file or directory in C:\wamp\www\ModuleEx.com\application\modules\admin\controllers\IndexController.php on line 71

Вот мой controller.php код.

if(isset($_FILES['file']['name'])){ //user upload file 
    $file_name = stripslashes($_FILES['file']['name']); 
    $ext_idx = strrpos($file_name,"."); 
    if(!$ext_idx) //hide this if ur app can upload without ext 
     echo "File invalid."; 
    else{ 
     $ext_length = strlen($file_name) - $ext_idx; 
     $extension = strtolower(substr($file_name,$ext_idx+1,$ext_length)); 
     //allowed extension 
     $ext_list = array("pdf", "doc","jpg", "jpeg", "gif", "png"); 
     if(!in_array($extension, $ext_list)) 
      echo "System can't support your extension."; 
     else{ 
      $size = (2500 * 1024); //2500 Kb 
      $file_size=filesize($_FILES['file']['tmp_name']); 
      if($file_size > $size) 
       echo "File is oversize. Max 2500 Kb."; 
      else{ 
       //change name 
       $file_name = "image".rand(10,1000).".".$extension; 

       $file_obj="public/image/".$file_name; 



       $copied = copy($_FILES['file']['tmp_name'], $file_obj); 

       if(!$copied) 
        echo "Failed."; 
       else 
       { 

        $file_data = array('file_name' => $file_name); 


        $this->view->file_obj=$file_obj; 




       } 
       } 

      } 
     } 
    } 
if ($_SERVER['REQUEST_METHOD'] == 'POST') 
{ 
$targ_w = $targ_h = 150; 
$jpeg_quality = 90; 
$src = "public/image/".$file_name; 

$img_r = imagecreatefromjpeg($src); 
$dst_r = ImageCreateTrueColor($targ_w, $targ_h); 

imagecopyresampled($dst_r,$img_r,0,0,(int)$_POST['x'],(int)$_POST['y'], 
$targ_w,$targ_h,(int)$_POST['w'],(int)$_POST['h']); 

//header('Content-type: image/jpeg'); 
    imagejpeg($dst_r,"public/image/crop/".$file_name,$jpeg_quality); 

    } 
+0

пожалуйста, напишите ваше изображение кадрирования код тоже. – shruti

+0

imagecreatefromjpeg ожидает, что изображение не путь, где должно быть создано изображение. следуйте http://www.php.net/manual/en/function.imagecreatefromjpeg.php –

+0

@ssk я разместил код, пожалуйста, проверьте его – Tuhin

ответ

3

Посмотрите на это изображение «imagecreatefromjpeg (public/image /)» - это не ресурс изображения. Он работает только с действительным ресурсом файл как

imagecreatefromjpeg('public/image/test.jpg'); 
1
Warning: imagecreatefromjpeg(public/image/) 

ваш путь не правильно, вы должны использовать абсолютный путь с __DIR__, например.

imagecreatefromjpeg(__DIR__."public/image/test.jpg"); 

и ваше имя отсутствует. Следующие ошибки являются результатом первой ошибки, которую ваше изображение не может загрузить.

+0

, но корневой путь, который я уже определил в файле index.php – Tuhin

2

попробуйте этот код:

$a="./images/".$file_name; 
    list($width, $height) = getimagesize($a); 
    $newwidth = "300"; 
    $newheight = "200"; 
    $thumb = imagecreatetruecolor($newwidth, $newheight); 
    $source = imagecreatefromjpeg($a); 
    imagecopyresized($dest, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); 
    imagejpeg($dest, $a, 100); 
Смежные вопросы