放置在IF语句中时,Imagecreatefromjpeg无法正常工作

i have a code that generates an image using imagecreatefromjpeg. it's working well, not until i decide to place it inside an if statement. my purspoe of doing that is to check whether a file is uploaded of not. if not, i will just use an image from the server. here is my code. please feel free to edit it. thanks in advance! been working here for hours now...

    if (is_uploaded_file($_FILES[$fieldname]['tmp_name'])) {
      header('Content-Type: image/jpeg');

      $upload = $uploadFilename;
      $im = imagecreatefromjpeg("bg.jpg");
      $img2 = imagecreatefromjpeg($upload);
      $black = imagecolorallocate($im, 0, 0, 0);
      $font = 'arialbi.ttf';
      $font2 = 'ariali.ttf';

      imagettftext($im, 24, 0, 50, 280, $black, $font, $title);
      imagettftext($im, 10, 0, 320, 362, $black, $font, $namehere);

      imagecopymerge($im, $img2, 30, 350, 0, 0, imagesx($img2), imagesy($img2), 100);

      $date_created = date("YmdHis");//get date created
      $img_name = "-img_entry.jpg"; //the file name of the generated image
      $img_newname = $date_created . $img_name; //datecreated+name
      $img_dir =dirname($_SERVER['SCRIPT_FILENAME']) ."/". $img_newname; //the location to save the image 
      imagejpeg($im, $img_dir , 80); //function to save the image with the name and quality

      $newpath = "/home3/site/public_html/Amats/image_entry/";
      $newdir = $newpath.$img_newname;
      copy ($img_dir, $newdir); //copy to new folder para mas madaling iretrieve

      $http_dir = 'http://site.com/Amats/image_entry/';
      $post_link = $http_dir . $img_newname;

      $msg = 'Story by ';
      $post_msg = $msg.$name;

      imagejpeg($im);
      imagedestroy($im);

    }

this is what comes before the if statement above:

    $directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);

    // make a note of the directory that will recieve the uploaded files //i made it as the same directory where the .php file is
    $uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self;

    // make a note of the location of the upload form in case we need it
    $uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'index.php';

    // make a note of the location of the success page
    $uploadSuccess = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'upload.success.php';

    // name of the fieldname used for the file in the HTML form
    $fieldname = 'file';

    // possible PHP upload errors
    $errors = array(1 => 'php.ini max file size exceeded', 
                    2 => 'html form max file size exceeded', 
                    3 => 'file upload was only partial', 
                    4 => 'no file was attached');

    // check the upload form was actually submitted else print form
    isset($_POST['submit'])
        or error('the upload form is neaded', $uploadForm);

    // check for standard uploading errors
    ($_FILES[$fieldname]['error'] == 0)
        or error($errors[$_FILES[$fieldname]['error']], $uploadForm);

    // check that the file we are working on really was an HTTP upload
    @is_uploaded_file($_FILES[$fieldname]['tmp_name'])
        or error('not an HTTP upload', $uploadForm);

    // validation... since this is an image upload script we 
    // should run a check to make sure the upload is an image
    @getimagesize($_FILES[$fieldname]['tmp_name'])
        or error('only image uploads are allowed', $uploadForm);

    // make a unique filename for the uploaded file and check it is 
    // not taken... if it is keep trying until we find a vacant one
    $now = time();
    while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
    {
        $now++;
    }
    // now let's move the file to its final and allocate it with the new filename
    @move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
        or error('receiving directory insuffiecient permission', $uploadForm);