sıfıra bölme php resim boyutlandırma komut

1 Cevap

This was working a few moments ago, not sure what changed. error log reads

[08-Aug-2009 02:09:20] PHP Warning:  readfile(/images/32321249694312.JPG) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: No such file or directory in /home/public_html/viewimg.php on line 82
[08-Aug-2009 02:09:24] PHP Warning:  Division by zero in /home/public_html/viewimg.php on line 49
[08-Aug-2009 02:09:24] PHP Warning:  readfile(/images/49491249704529.png) [<a href='function.readfile'>function.readfile</a>]: failed to open stream: No such file or directory in /home/public_html/viewimg.php on line 82
[08-Aug-2009 02:09:59] PHP Warning:  Division by zero in /home/public_html/viewimg.php on line 49

viewimg.php kod aşağıda

<?php
header ("Content-type: image/jpeg");
/*
JPEG / PNG Image Resizer
Parameters (passed via URL):

img = path / url of jpeg or png image file

percent = if this is defined, image is resized by it's
          value in percent (i.e. 50 to divide by 50 percent)

w = image width

h = image height

constrain = if this is parameter is passed and w and h are set
            to a size value then the size of the resulting image
            is constrained by whichever dimension is smaller

Requires the PHP GD Extension

Outputs the resulting image in JPEG Format

Filename : imgsize.php
*/

$img = $_GET['img'];
$percent = $_GET['percent'];
$constrain = $_GET['constrain'];
$w = $_GET['w'];
$h = $_GET['h'];

// get image size of img
$x = @getimagesize($img);
// image width
$sw = $x[0];
// image height
$sh = $x[1];

if ($percent > 0) {
    // calculate resized height and width if percent is defined
    $percent = $percent * 0.01;
    $w = $sw * $percent;
    $h = $sh * $percent;
} else {
    if (isset ($w) AND !isset ($h)) {
    	// autocompute height if only width is set
    	$h = (100 / ($sw / $w)) * .01;
    	$h = @round ($sh * $h);
    } elseif (isset ($h) AND !isset ($w)) {
    	// autocompute width if only height is set
    	$w = (100 / ($sh / $h)) * .01;
    	$w = @round ($sw * $w);
    } elseif (isset ($h) AND isset ($w) AND isset ($constrain)) {
    	// get the smaller resulting image dimension if both height
    	// and width are set and $constrain is also set
    	$hx = (100 / ($sw / $w)) * .01;
    	$hx = @round ($sh * $hx);

    	$wx = (100 / ($sh / $h)) * .01;
    	$wx = @round ($sw * $wx);

    	if ($hx < $h) {
    		$h = (100 / ($sw / $w)) * .01;
    		$h = @round ($sh * $h);
    	} else {
    		$w = (100 / ($sh / $h)) * .01;
    		$w = @round ($sw * $w);
    	}
    }
}

$im = @ImageCreateFromJPEG ($img) or // Read JPEG Image
$im = @ImageCreateFromPNG ($img) or // or PNG Image
$im = @ImageCreateFromGIF ($img) or // or GIF Image
$im = false; // If image is not JPEG, PNG, or GIF

if (!$im) {
    // We get errors from PHP's ImageCreate functions...
    // So let's echo back the contents of the actual image.
    readfile ($img);
} else {
    // Create the resized image destination
    $thumb = @ImageCreateTrueColor ($w, $h);
    // Copy from image source, resize it, and paste to image destination
    @ImageCopyResampled ($thumb, $im, 0, 0, 0, 0, $w, $h, $sw, $sh);
    // Output resized image
    @ImageJPEG ($thumb);
}
?>

NOTE The files in question do exist in the directory. I can access them manually just fine, however when using this script, it fails.

1 Cevap

Ben hata mesajı oldukça açık olduğunu düşünüyorum:

readfile(/images/32321249694312.JPG) : failed to open stream: No such file or directory

Görüntü ne sebeple olursa olsun, açılamadı. Bu nedenle görüntünün boyutunu bulmak gerekiyordu noktada, olamaz. Görüntünün boyutunu tutmak gerekiyordu bu hata değil bildirdi @ operatör ve değişken sizin liberal kullanımı sayesinde null. Eğer null bazı sayısını bölmek deneyin kadar bu tamam:

PHP Warning:  Division by zero