Hej
Jeg har lavet et upload script i cakephp
Den gør det at den først uploader et billede til serveren og herefter laver den selv et thumbnail billede.
Det virker rigtig fint på min lokale PC, men når jeg ligger det op på en server virker det ikke længere når filerne er på ca. 1mb. Det virker dog fint når billederne ligger omkring 2-300 kb.
Jeg kan se i mappen at den får lagt billedet op, men den får ikke lavet et thumbnail.
Jeg gør brug af denne uploader:
http://valums.com/ajax-upload/Jeg har lavet denne kode der laver en thumbnail:
function createThumb( $pathToImages, $fname, $pathToThumbs, $thumbWidth )
{
// parse path for the extension
$info = pathinfo($pathToImages . $fname);
// continue only if this is a JPEG image
if ( strtolower($info['extension']) == 'jpg' )
{
// load image and get image size
$img = imagecreatefromjpeg( "{$pathToImages}{$fname}" );
$width = imagesx( $img );
$height = imagesy( $img );
// calculate thumbnail size
$new_width = $thumbWidth;
$new_height = floor( $height * ( $thumbWidth / $width ) );
// create a new temporary image
$tmp_img = imagecreatetruecolor( $new_width, $new_height );
// copy and resize old image into new image
imagecopyresized( $tmp_img, $img, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
// save thumbnail into a file
imagejpeg( $tmp_img, "{$pathToThumbs}{$fname}" );
}
}
Og min controller action der uploader billeder ser sådan ud:
function upload($property_case_id) {
$uploader = new qqUploadedFileXhr();
$dir = ROOT."/app/webroot/files/".$property_case_id;
$path_without_root = "/app/webroot/files/".$property_case_id;
$thumb_dir = $dir."/thumbs";
if(!file_exists($dir)) {
mkdir($dir, 0755,true);
}
if(!file_exists($thumb_dir)) {
mkdir($thumb_dir, 0755,true);
}
$path = $dir."/".$uploader->getName();
$uri_path = "app/webroot/files/".$property_case_id."/".$uploader->getName();
$allowedExtentions = array('jpg', 'jpeg');
$result = $uploader->save($path, $allowedExtentions);
$thumb_url = "app/webroot/files/".$property_case_id."/thumbs/".$uploader->getName();
createThumb($dir."/", $uploader->getName(), $thumb_dir."/", 75);
if($result) {
$this->Picture->create();
$this->Picture->set("property_case_id", $property_case_id);
$this->Picture->set("picture_url", $uri_path);
$this->Picture->set("thumb_url", $thumb_url);
$this->Picture->set("path", $path_without_root."/".$uploader->getName());
$this->Picture->save();
$this->set("success", true);
} else {
$this->set("success", false);
}
Configure::write ( 'debug', 0 );
$this->layout = "json/default";
}
Kan i hjælpe mig med hvad problemer er?