Есть некий скрипт которым я загружаю картинку на сервер. PHP: <?php // Загрузка файлов на сервер include_once("req.php"); $imeage_editor = new imeage_edit(); // Если upload файла if(isset($_FILES["myfile"])) { $myfile = $_FILES["myfile"]["tmp_name"]; $myfile_name = $_FILES["myfile"]["name"]; $myfile_size = $_FILES["myfile"]["size"]; $myfile_type = $_FILES["myfile"]["type"]; $error_flag = $_FILES["myfile"]["error"]; // Если ошибок не было if($error_flag == 0) { print("Имя файла на нашем сервере (во время запроса): ".$myfile."<br>"); print("Имя файла на компьютере пользователя: ".$myfile_name."<br>"); print("MIME-тип файла: ".$myfile_type."<br>"); print("Размер файла: ".$myfile_size."<br><br>"); // Получаем содержимое файла // $fp = fopen($myfile,"r"); // $content = fread($fp, filesize($myfile)); // fclose($fp); // Получаем массив с информацией о размере и формате картинки (mime) $size = getimagesize($myfile); $imeage_editor->editsize($myfile); } // end of if 2 } // end of if 1 ?> и есть некий класс, который эту картинку доводит до нужного мне состояния. PHP: <?php class imeage_edit { function editsize($filename,$width,$height){ // The file //$filename = 'test.jpg'; // Set a maximum height and width $width = 200; $height = 200; // Content type //header('Content-type: image/jpeg'); // Get new dimensions list($width_orig, $height_orig) = getimagesize($filename); $ratio_orig = $width_orig/$height_orig; if ($width/$height > $ratio_orig) { $width = $height*$ratio_orig; } else { $height = $width/$ratio_orig; } // Resample $image_p = imagecreatetruecolor($width, $height); $image = imagecreatefromjpeg($filename); var_dump($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); // Output //imagejpeg($image_p, null, 100); header('Content-type: image/jpeg'); return $image_p; } function image_virtue($outfile,$infile,$neww,$newh,$quality) { $im=imagecreatefromjpeg($infile); $im1=imagecreatetruecolor($neww,$newh); imagecopyresampled($im1,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im)); imagejpeg($im1,$outfile,$quality); imagedestroy($im); imagedestroy($im1); return;} //header('Content-type: image/jpeg'); //image_virtue("","test.jpg",3264,2448,50); }?> все вроде как хорошо.. НО! не работает, в чем проблема, понять не могу.=(
картинка небось не показывается? так и не должна вроде. думаю, логичнее сделать нечто вроде imagejpeg($imeage_editor->editsize($myfile));
так она в любом случае не показывает. я писал так $small_img = $imeage_editor->editsize($myfile); printf($small_img); header('Content-type: image/jpeg'); тоже без безрезультатно... В идеале после обработки я должен картинку записать в директорию. Вот еще не уверен в конструкции. $small_img = $imeage_editor->editsize($myfile); Если файл уже загружен, то скрипт работает без проблем...
какой-то мозговыносящий код. ты передаешь в $imeage_editor->editsize($myfile); где $myfile = $_FILES["myfile"]["tmp_name"]; то бишь стринг. далее в editsize: getimagesize($filename); читаем мануал http://php.net/manual/en/function.getimagesize.html в частности: То есть скрипт пытается получить размер локального файла, путь к которому передан в параметре. А этот файл локально существует? Если я понял правильно, файл аплоадится, right?
ну тогда сам бог велел экранировать слэши (у тебя только один экранирован): C:\\xamppt\\temp\\php5dd.tmp я предпочитаю использовать прямые слэши: C:/xamppt/temp/php5dd.tmp их не надо экранировать.
про C:\\xamppt\\temp\\php5dd.tmp я говорил образно, так как в данный момент не мог посмотреть. выглядит оно так. Имя файла на нашем сервере (во время запроса): C:\xampp\tmp\php2D.tmp