I noticed you mentioned the page item is called P21_IMAGE but in your code you have your where statement referring to P21_IMAGE_FILENAME1. I think you need to check this first.
SELECT blob_content, filename, mime_type, created_on INTO v_blob, v_filename, v_mime, v_last_updated FROM APEX_APPLICATION_TEMP_FILES WHERE name = :P21_IMAGE_FILENAME1; <----- this may not be correct