I call the storeBigImage methid from aother method like so
function addProduct(){
$this->storeBigImage($ID, $_FILES["image"]);
}
that doesn't work, if I use this:
function addProduct(){
// Move the uploaded file to the correct location
move_uploaded_file($$_FILES["image"]["tmp_name"], BASE_DIR."/_img/_products/".$iProductId."_".$fileName);
}
The above works fine, which I find very strange indeed!
Thanks,
Jon
jon bennett | [EMAIL PROTECTED] new media designer / developer _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
J b e n . n e t
91 Gloucester Rd, Trowbridge, Wilts, BA14 0AD t: +44 (0) 1225 341039 w: http://www.jben.net/
On 1 Dec 2003, at 12:50, Jon Bennett wrote:
Hi,
I have a file upload problem, but I don't think it's a permission thing (if only, that would be simple!).
I have written a resizing method for a class I'm working on, and it always fails on the imageJpeg() at the end of the method. This is the error I get...
imagejpeg(): Unable to open '/Library/WebServer/Documents/my_site/_lib/_products/2_big_me.jpg' for writing in /Library/WebServer/Documents/my_site/_lib/_classes/class.products.php on line 132
Now, here's the strange bit, if I call my method and just use move_uploaded_file() then the image is saved correctly, so I know it's not the permissions, could someone have a little look at my method and let me know if there's anything wrong with it please
// $ID is an integer used for naming purposes
// $aImage is an array, it's basically a copy of $_FILES["image"]
// BASE_DIR is a constant var and holds, yep you guessed it, the base dir of the site!
// IMGMAXHEIGHT & IMGMAXWIDTH are also constants used for resizing purposes
function storeBigImage($ID, $aImage){
// create filenames
fopen($aImage['name'], 'r');
$aNewImage['real_name'] = $aImage['name'];
$aNewImage['new_name'] = $ID . '_' . 'big' . '_' . $aNewImage['real_name'];
$aNewImage['image_loc'] = BASE_DIR . '_lib/_products/' . $aNewImage['new_name'];
// copy original image
$aNewImage['original_image'] = ImageCreateFromJpeg($aImage['tmp_name']);
$aNewImage['sizes'] = getimagesize($aImage['tmp_name']);
$aNewImage['width'] = $aNewImage['sizes'][0];
$aNewImage['height'] = $aNewImage['sizes'][0];
if($aNewImage['width'] >= IMGMAXWIDTH || $aNewImage['height'] >= IMGMAXHEIGHT){
// calculate ratios
$iRatio_w = IMGMAXWIDTH / $aNewImage['width'];
$iRatio_h = IMGMAXHEIGHT / $aNewImage['height'];
$iRatio = $iRatio_w < $iRatio_h ? $iRatio_w:$iRatio_h;
// calculate new dimensions
$aNewImage['new_width'] = $aNewImage['width'] * $iRatio;
$aNewImage['new_height'] = $aNewImage['height'] * $iRatio;
// save resized image
$aNewImage['new_image'] = ImageCreateTrueColor($aNewImage['new_width'], $aNewImage['new_height']);
ImageCopyResized($aNewImage['new_image'], ImageCreateFromJpeg($aImage['tmp_name']), 0, 0, 0, 0, $aNewImage['new_width'], $aNewImage['new_height'], $aNewImage['width'], $aNewImage['height']);
//ImageJpeg($aNewImage['new_image'], $aNewImage['image_loc']);
ImageJpeg($aNewImage['original_image'], $aNewImage['image_loc']);
} else {
// save original image
//ImageJpeg($aImage['tmp_name'], $aNewImage['image_loc']);
ImageJpeg($aNewImage['original_image'], $aNewImage['image_loc']);
//ImageJpeg($this->aArgs['Image']['tmp_name'], $aNewImage['image_loc']);
}
}
I have ftp'd into my local server and the folder in question is set at 777, and like I said it works fine if I don't use this class
Any ideas ??
Thanks,
Jon
jon bennett | [EMAIL PROTECTED] new media designer / developer _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
J b e n . n e t
91 Gloucester Rd, Trowbridge, Wilts, BA14 0AD t: +44 (0) 1225 341039 w: http://www.jben.net/
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php