Expand|Select|Wrap|Line Numbers
- Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 3714000 bytes) in /opt/lampp/htdocs/tutorials/php-mysql-tutorial/admin/image-gallery/library/functions.php on line 104
Ubuntu 8.04 LST (where i make my programs, and test them before i upload them), Using XAMPP for Linux 1.6.7, Apache
Server:
Fedora release 7 (Moonshine)
2.6.9-023stab044.4-smp #1 SMP Thu May 24 17:20:37 MSD 2007 i686 i686 i386 GNU/Linux
Source of
Expand|Select|Wrap|Line Numbers
- <?php
- /*
- Details for: 'functions.php'
- Auther: Franocis Venter
- Domain: main.theshadowgfx.com
- Copyright: (c) 2008 The ShadowGFX
- End Details
- Upload an image and create the thumbnail. The thumbnail is stored
- under the thumbnail sub-directory of $uploadDir.
- Return the uploaded image name and the thumbnail also.
- */
- function uploadImage($inputName, $uploadDir)
- {
- $image = $_FILES[$inputName];
- $imagePath = '';
- $thumbnailPath = '';
- // if a file is given
- if (trim($image['tmp_name']) != '') {
- $ext = substr(strrchr($image['name'], "."), 1);
- // generate a random new file name to avoid name conflict
- // then save the image under the new file name
- $imagePath = md5(rand() * time()) . ".$ext";
- $result = move_uploaded_file($image['tmp_name'], $uploadDir . $imagePath);
- if ($result) {
- // create thumbnail
- $thumbnailPath = md5(rand() * time()) . ".$ext";
- $result = createThumbnail($uploadDir . $imagePath, $uploadDir . 'thumbnail/' . $thumbnailPath, THUMBNAIL_WIDTH);
- // create thumbnail failed, delete the image
- if (!$result) {
- unlink($uploadDir . $imagePath);
- $imagePath = $thumbnailPath = '';
- } else {
- $thumbnailPath = $result;
- }
- } else {
- // the image cannot be uploaded
- $imagePath = $thumbnailPath = '';
- }
- }
- return array('image' => $imagePath, 'thumbnail' => $thumbnailPath);
- }
- /*
- Create a thumbnail of $srcFile and save it to $destFile.
- The thumbnail will be $width pixels.
- */
- function createThumbnail($srcFile, $destFile, $width, $quality = 75)
- {
- $thumbnail = '';
- if (file_exists($srcFile) && isset($destFile))
- {
- $size = getimagesize($srcFile);
- $w = number_format($width, 0, ',', '');
- $h = number_format(($size[1] / $size[0]) * $width, 0, ',', '');
- $thumbnail = copyImage($srcFile, $destFile, $w, $h, $quality);
- }
- // return the thumbnail file name on sucess or blank on fail
- return basename($thumbnail);
- }
- /*
- Copy an image to a destination file. The destination
- image size will be $w X $h pixels
- */
- function copyImage($srcFile, $destFile, $w, $h, $quality = 75)
- {
- $tmpSrc = pathinfo(strtolower($srcFile));
- $tmpDest = pathinfo(strtolower($destFile));
- $size = getimagesize($srcFile);
- if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
- {
- $destFile = substr_replace($destFile, 'jpg', -3);
- $dest = imagecreatetruecolor($w, $h);
- //imageantialias($dest, TRUE);
- } elseif ($tmpDest['extension'] == "png") {
- $dest = imagecreatetruecolor($w, $h);
- //imageantialias($dest, TRUE);
- } else {
- return false;
- }
- switch($size[2])
- {
- case 1: //GIF
- $src = imagecreatefromgif($srcFile);
- break;
- case 2: //JPEG
- $src = imagecreatefromjpeg($srcFile);
- break;
- case 3: //PNG
- $src = imagecreatefrompng($srcFile);
- break;
- default:
- return false;
- break;
- }
- imagecopyresampled($dest, $src, 0, 0, 0, 0, $w, $h, $size[0], $size[1]);
- switch($size[2])
- {
- case 1:
- case 2:
- imagejpeg($dest,$destFile, $quality);
- break;
- case 3:
- imagepng($dest,$destFile);
- }
- return $destFile;
- }
- /*
- Check if the user is logged in or not
- */
- function checkLogin()
- {
- if (!isset($_SESSION['isLogin']) || $_SESSION['isLogin'] == false) {
- header('Location: login.php');
- exit;
- }
- }
- /*
- Create the link for moving from one page to another
- */
- function getPagingLink($totalResults, $pageNumber, $itemPerPage = 10, $strGet = '')
- {
- $pagingLink = '';
- $totalPages = ceil($totalResults / $itemPerPage);
- // how many link pages to show
- $numLinks = 10;
- // create the paging links only if we have more than one page of results
- if ($totalPages > 1) {
- $self = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ;
- // print 'previous' link only if we're not
- // on page one
- if ($pageNumber > 1) {
- $page = $pageNumber - 1;
- if ($page > 1) {
- $prev = " <a href=\"$self?pageNum=$page&$strGet\">[Prev]</a> ";
- } else {
- $prev = " <a href=\"$self?$strGet\">[Prev]</a> ";
- }
- $first = " <a href=\"$self?$strGet\">[First]</a> ";
- } else {
- $prev = ''; // we're on page one, don't show 'previous' link
- $first = ''; // nor 'first page' link
- }
- // print 'next' link only if we're not
- // on the last page
- if ($pageNumber < $totalPages) {
- $page = $pageNumber + 1;
- $next = " <a href=\"$self?pageNum=$page&$strGet\">[Next]</a> ";
- $last = " <a href=\"$self?pageNum=$totalPages&$strGet\">[Last]</a> ";
- } else {
- $next = ''; // we're on the last page, don't show 'next' link
- $last = ''; // nor 'last page' link
- }
- $start = $pageNumber - ($pageNumber % $numLinks) + 1;
- $end = $start + $numLinks - 1;
- $end = min($totalPages, $end);
- $pagingLink = array();
- for($page = $start; $page <= $end; $page++) {
- if ($page == $pageNumber) {
- $pagingLink[] = " $page "; // no need to create a link to current page
- } else {
- if ($page == 1) {
- $pagingLink[] = " <a href=\"$self?$strGet\">$page</a> ";
- } else {
- $pagingLink[] = " <a href=\"$self?pageNum=$page&$strGet\">$page</a> ";
- }
- }
- }
- $pagingLink = implode(' | ', $pagingLink);
- // return the page navigation link
- $pagingLink = $first . $prev . $pagingLink . $next . $last;
- }
- return $pagingLink;
- }
- /*
- Display the breadcrumb navigation on top of the gallery page
- */
- function showBreadcrumb()
- {
- if (isset($_GET['album'])) {
- $album = $_GET['album'];
- $sql = "SELECT al_name
- FROM tbl_album
- WHERE al_id = $album";
- $result = mysql_query($sql) or die('Error, get album name failed. ' . mysql_error());
- $row = mysql_fetch_assoc($result);
- echo ' > <a href="index.php?page=list-image&album=' . $album . '">' . $row['al_name'] . '</a>';
- if (isset($_GET['image'])) {
- $image = $_GET['image'];
- $sql = "SELECT im_title
- FROM tbl_image
- WHERE im_id = $image";
- $result = mysql_query($sql) or die('Error, get image name failed. ' . mysql_error());
- $row = mysql_fetch_assoc($result);
- echo ' > <a href="index.php?page=image-detail&album=' . $album . '&image=' . $image . '">' . $row['im_title'] . '</a>';
- }
- }
- }
- ?>