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

时间:2013-11-05 23:44:10

标签: php

我有一个使用imagecreatefromjpeg生成图像的代码。它运作良好,直到我决定将它放在if语句中。我这样做的目的是检查文件是否上传了。如果没有,我将只使用服务器中的图像。这是我的代码。请随时编辑它。提前致谢!在这里工作了几个小时......

    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);

    }

这是上面的if语句之前的内容:

    $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);

0 个答案:

没有答案