2017-01-10 69 views
0

我試圖以編程方式將圖像上傳到Wordpress。除了最後兩行,我嘗試生成圖像縮略圖和其他中間尺寸以外,一切正常。函數wp_generate_attachment_metadata()似乎正確地生成了新的圖像大小,但它會嘗試將結果圖像顯示爲二進制,而不是返回適當的元數據數組。爲什麼二進制文件(見下圖)被回顯到我的屏幕上?我如何壓制它?以編程方式在Wordpress中創建縮略圖以二進制形式顯示圖像

$filetype = wp_check_filetype(basename($image), null); 
$attachment = array(
    'guid'   => wp_upload_dir()['url'] . '/' . basename($image), 
    'post_mime_type' => $filetype['type'], 
    'post_content' => '', 
    'post_status' => 'inherit', 
    'post_title'  => preg_replace('/\.[^.]+$/', '', basename($image)) 
); 
$attach_id = wp_insert_attachment($attachment, $image); 
update_field('image', $attach_id, $post_id); 

$attach_data = wp_generate_attachment_metadata($attach_id, $image); 
$response = wp_update_attachment_metadata($attach_id, $attach_data); 

這是二進制回聲的採樣。 enter image description here

+0

Ehm,二進制代碼是011000101000,不是這個。你也不會說它何時/如何輸出這個,你應該發佈代碼的相關部分...... – walther

回答

1

因此,原來的功能是顯示亂碼後,一陣短暫的錯誤信息(未能打開流:HTTP包裝不 不支持可寫的連接)。事實證明,函數「wp_generate_attachment_metadata」需要圖像的絕對路徑。將$ image變量更改爲絕對路徑(來自網絡路徑,http://website.com/path/to/image.png)修復了問題。