Erro apenas na versão 5.2.6
Olá pessoal, venho pedir mais uma forcinha....
Fiz uma class de manipulação de imagens, o código roda perfeitamente no localhost que tem versão do php 4.3 e também em um host que possui versão do php 4.3. Agora tive que colocar esses códigos em outro host no qual possui versão 5.2 e estão aparecendo os seguintes erros:
>
Warning: imagejpeg() [function.imagejpeg]: Unable to open '../../fotos/imagem12137902240.jpg' for writing: Permission denied in /home/ilhanaba/public_html/admin/php/ClassImgManipulation.php on line 43
Warning: imagejpeg() [function.imagejpeg]: Unable to open '../../fotos/thumb12137902245.jpg' for writing: Permission denied in /home/ilhanaba/public_html/admin/php/ClassImgManipulation.php on line 58
Warning: imagecreatefromjpeg(../../fotos/imagem12137902240.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in /home/ilhanaba/public_html/admin/php/ClassImgManipulation.php on line 76
Warning: imagesy(): supplied argument is not a valid Image resource in /home/ilhanaba/public_html/admin/php/ClassImgManipulation.php on line 79
Warning: imagecopymerge(): supplied argument is not a valid Image resource in /home/ilhanaba/public_html/admin/php/ClassImgManipulation.php on line 84
Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/ilhanaba/public_html/admin/php/ClassImgManipulation.php on line 85
Algém poderia me explicar porque acontece isso...
o código da class segue abaixo:
CODE
<?phpset_time_limit(0);
class fileManipulation{
var $imagesCount;
var $imagesEvent;
var $imagesMark = "../images/marca.png";
var $imagesDir = "../../fotos/";
var $imagesDiscardsAlerts = "";
var $imagesDiscards = array();
var $manegeError = array (
"0" => "upload execultado com sucesso!",
"1" => "O arquivo é maior que o permitido pelo Servidor",
"2" => "O arquivo é maior que o permitido pelo formulario",
"3" => "O upload do arquivo foi feito parcialmente",
"4" => "Não foi feito o upload do arquivo"
);
function imagesDimension($img, $max_x, $max_y, $nome_foto, $imageType) {
//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);
$original_x = $width;
$original_y = $height;
// se a largura for maior que altura
if($imageType == 1) {
if($original_x > $original_y) {
$porcentagem = (100 * $max_x) / $original_x;
} else {
$porcentagem = (100 * $max_y) / $original_y;
}
$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);
$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image = imagecreatefromjpeg($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);
return imagejpeg($image_p, $nome_foto, 100);
} else {
$porcentagem = (100 * $max_x) / $original_x;
$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);
$image_p = imagecreatetruecolor($max_x, $max_y);
$imageTemp = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image = imagecreatefromjpeg($img);
imagecopyresized($imageTemp, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $original_x, $original_y);
imagecopy($image_p, $imageTemp, 0, 0, 0, 0, $max_x, $max_y);
return imagejpeg($image_p, $nome_foto, 100);
}
}
function imagesPostBank($img, $thumb) {
//Armazena o número do evento que corresponde as fotos
$this->imagesEvent = $_POST['imagesEvent'];
//Insere o número do evento, foto e thumb no banco de dados
include "../conn.php";
$sql = "INSERT INTO imagens (evento, foto, thumb) VALUES ('$this->imagesEvent', '$img', '$thumb')";
$sql = mysql_query($sql) or die ( "Houve erro na gravação de dados." );
mysql_close();
return true;
}
function imagesMarkes($img) {
@header("Content-type: image/png");
$imgPrimary = imagecreatefromjpeg($img);
$mark = imagecreatefrompng($this->imagesMark);
$imgPrimaryHeight = (imagesy($imgPrimary) - 56);
$markx = imagesx($mark);
$marky = imagesy($mark);
imagecopymerge($imgPrimary, $mark, 0, $imgPrimaryHeight, 0, 0, $markx, $marky, 90);
imagejpeg($imgPrimary, $img, 100);
@imagedestroy($imgPrimary);
@imagedestroy($mark);
}
function imagesValidate() {
//Calcula a quantidade de fotos submetidas
$this->imagesCount = count($_FILES['inputFile']['name']);
for($x=0; $x < $this->imagesCount; $x++) {
if(isset($_FILES['inputFile']) ? $_FILES['inputFile'] : FALSE) {
//Se o arquivo temp não for criado retorna false
if(!is_uploaded_file($_FILES['inputFile']['tmp_name'][$x])) {
return false;
}
$getImageMime = getimagesize($_FILES['inputFile']['tmp_name'][$x]);
//Se o arquivo for diferente de JPEG retorna erro
if($getImageMime['mime'] != "image/jpeg") {
//Informa que o upload não foi realizado e insere a imagem na array de imagens descartadas
echo $this->$imagesDiscardsAlerts = "Erro: O arquivo " . $_FILES['inputFile']['name'][$x] . " não é uma imagem '.jpg', por isso seu upload não será realizado. <br />";
array_push($this->imagesDiscards, $_FILES['inputFile']['name'][$x]);
}
} else {
exit;
}
}
//Se o número de imagens descartadas for igual ao numero de imagens submetidas a função é encerrada
if(count($this->imagesDiscards) == $this->imagesCount) {
exit;
}
return true;
}
function imageSend() {
if($this->imagesValidate()) {
//Se a validação retornar sucesso chama a função para a criação da imagem
$this->imagesCreate();
} else {
}
}
function imagesCreate() {
//Cria a pasta caso ela não exista
if(!file_exists($this->imagesDir)) {
mkdir($this->imagesDir);
}
//Calcula a quantidade de fotos submetidas
$this->imagesCount = count($_FILES['inputFile']['name']);
for($x=0; $x < $this->imagesCount; $x++) {
//Busca na array imagesDiscards o valor 'name' do arquivo $_FILES
foreach($this->imagesDiscards as $value) {
if($_FILES['inputFile']['name'][$x] == $value) {
$serchImagesDiscards = 1;
} else {
$serchImagesDiscards = 0;
}
}
//Se $serchImagesDiscards for igual a 0 cria um novo nome para a imagem
if ($serchImagesDiscards == 0) {
$imageName = "imagem".time(). $x . ".jpg";
$thumbName = "thumb".time(). ($x+5) . ".jpg";
//Redimensiona e cria as imagens
$this->imagesDimension($_FILES['inputFile']['tmp_name'][$x], 315, 420, $this->imagesDir.$imageName, 1);
$this->imagesDimension($_FILES['inputFile']['tmp_name'][$x], 107, 79, $this->imagesDir.$thumbName, 2);
//Se a criação da imagem foi realizada com sucesso passa para o próximo passo
if($_FILES['inputFile']['error'][$x] != 0) {
echo "Retorno: " . $this->manegeError[$_FILES['inputFile']['error'][$x]] . "</span>";
exit;
} else {
$this->imagesPostBank($imageName, $thumbName);
$this->imagesMarkes($this->imagesDir.$imageName);
//echo "<script>document.location.href='../?session=4'</script>";
}
} else {
}
}
}
}
$showFileManipulation = new fileManipulation();
echo $showFileManipulation->imageSend();
?>
valew...
Discussão (4)
Carregando comentários...