image watermark for multiple images one time php
<p>I am a newbie in php and i am trying to add watermark to images while uploading. I have used the following code.</p>

<pre><code>&lt;form action="watermark-image.php" method="post" enctype="multipart/form-data"&gt;
  Select a file to upload for processing&lt;br&gt;
  &lt;input type="file" name="File1"&gt;&lt;br&gt;
  &lt;input type="submit" value="Submit File"&gt;
&lt;/form&gt;

&lt;?php
  //--------------------------------
  // CREATE WATERMARK FUNCTION
  //--------------------------------

  define( 'WATERMARK_OVERLAY_IMAGE', 'watermark.png' );
  define( 'WATERMARK_OVERLAY_OPACITY', 50 );
  define( 'WATERMARK_OUTPUT_QUALITY', 90 );

  function create_watermark( $source_file_path, $output_file_path )
  {
    list( $source_width, $source_height, $source_type ) = getimagesize( $source_file_path );

    if ( $source_type === NULL )
    {
      return false;
    }

    switch ( $source_type )
    {
      case IMAGETYPE_GIF:
        $source_gd_image = imagecreatefromgif( $source_file_path );
        break;
      case IMAGETYPE_JPEG:
        $source_gd_image = imagecreatefromjpeg( $source_file_path );
        break;
      case IMAGETYPE_PNG:
        $source_gd_image = imagecreatefrompng( $source_file_path );
        break;
      default:
        return false;
    }

    $overlay_gd_image = imagecreatefrompng( WATERMARK_OVERLAY_IMAGE );
    $overlay_width = imagesx( $overlay_gd_image );
    $overlay_height = imagesy( $overlay_gd_image );

    imagecopymerge(
      $source_gd_image,
      $overlay_gd_image,
      $source_width - $overlay_width,
      $source_height - $overlay_height,
      0,
      0,
      $overlay_width,
      $overlay_height,
      WATERMARK_OVERLAY_OPACITY
    );

    imagejpeg( $source_gd_image, $output_file_path, WATERMARK_OUTPUT_QUALITY );

    imagedestroy( $source_gd_image );
    imagedestroy( $overlay_gd_image );
  }

  //--------------------------------
  // FILE PROCESSING FUNCTION
  //--------------------------------

  define( 'UPLOADED_IMAGE_DESTINATION', 'originals/' );
  define( 'PROCESSED_IMAGE_DESTINATION', 'images/' );

  function process_image_upload( $Field )
  {
    $temp_file_path = $_FILES[ $Field ][ 'tmp_name' ];
    $temp_file_name = $_FILES[ $Field ][ 'name' ];

    list( , , $temp_type ) = getimagesize( $temp_file_path );

    if ( $temp_type === NULL )
    {
      return false;
    }

    switch ( $temp_type )
    {
      case IMAGETYPE_GIF:
        break;
      case IMAGETYPE_JPEG:
        break;
      case IMAGETYPE_PNG:
        break;
      default:
        return false;
    }

    $uploaded_file_path = UPLOADED_IMAGE_DESTINATION . $temp_file_name;
    $processed_file_path = PROCESSED_IMAGE_DESTINATION . preg_replace( '/\\.[^\\.]+$/', '.jpg', $temp_file_name );

    move_uploaded_file( $temp_file_path, $uploaded_file_path );

    $result = create_watermark( $uploaded_file_path, $processed_file_path );

    if ( $result === false )
    {
      return false;
    }
    else
    {
      return array( $uploaded_file_path, $processed_file_path );
    }
  }

  //--------------------------------
  // END OF FUNCTIONS
  //--------------------------------

  $result = process_image_upload( 'File1' );

  if ( $result === false )
  {

    echo '&lt;br&gt;An error occurred during file processing.';
  }
  else
  {
    echo '&lt;br&gt;Original image saved as &lt;a href="' . $result[ 0 ] . '" target="_blank"&gt;' . $result[ 0 ] . '&lt;/a&gt;';
    echo '&lt;br&gt;Watermarked image saved as &lt;a href="' . $result[ 1 ] . '" target="_blank"&gt;' . $result[ 1 ] . '&lt;/a&gt;';
  }
?&gt;
</code></pre>

<p>It is working fine if i have only one file field. I have added another file field like</p>

<pre><code>  &lt;input type="file" name="File1"&gt;&lt;br&gt;
  &lt;input type="file" name="File2"&gt;&lt;br&gt;
</code></pre>

<p>It showed me an error. I need more than one file field in my form. How can i do this?</p>
