2013-11-18 6 views
0

программно Я вставив прикрепление на пост, как это Programatically:содержания изображения печатается на экране после установки WordPress прикрепления

$wp_filetype = wp_check_filetype($gallery); 

$attachment = array(
    'guid' => '', 
    'post_mime_type' => $wp_filetype['type'], 
    'post_title' => preg_replace('/\.[^.]+$/', '', basename($gallery)), 
    'post_content' => '', 
    'post_status' => 'inherit' 
); 

$attach_id = wp_insert_attachment($attachment, $gallery, $post_id); 
require_once(ABSPATH . 'wp-admin/includes/image.php'); 
$attach_data = wp_generate_attachment_metadata($attach_id, $gallery); 
$update_data = wp_update_attachment_metadata($attach_id, $attach_data); 

Все работает отлично и вложение добавлено, но я получаю код изображения отображается на странице , : S

Что-то вроде этого (я не буду размещать весь код):

����JFIF``��;CREATOR: gd-jpeg v1.0 (using IJG JPEG v80), quality = 90 ��C  ��C   ����"�� ���}!1AQa"q2���#B��R��$3br� %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz��������������������������������������������������������������������������� ���w!1AQaq"2�B���� #3R�br� $4� 

Любые идеи, почему это происходит?

+2

В каком виде это base64? –

+0

Это похоже на сжатие, чем кодирование base64 ... – War10ck

+0

_ «странный код base64» _ вы упоминаете * это * изображение. Как вы получаете этот образ? Похоже, что отсутствует заголовок http-типа Content-Type. – Tchoupi

ответ

0

Перед отправкой содержимого изображения вам необходимо добавить заголовок Content-Type: image/jpeg.

Браузер может интерпретировать содержимое файла как jpeg и отображать его правильно.

С PHP: header("Content-Type: image/jpeg");

Смежные вопросы