在程序開發(fā)中,處理上傳文件是一個(gè)麻煩事,在 WordPress中,不是這樣的,WordPress為我們提供了處理上傳圖片的函數(shù):media_handle_upload,我們只需要把參數(shù)傳給這個(gè)函數(shù),上傳的圖片或文件就自動保存在服務(wù)器上并插入媒體庫中了。下面我們來看以下這個(gè)函數(shù)怎么用的。
media_handle_upload參數(shù)
| 參數(shù) | 類型 | 必要性 | 默認(rèn)值 | 描述 |
|---|---|---|---|---|
| $file_id | string | 必需 | – | PHP $_FILES 超級變量的索引 |
| $post_id | int | 可選 | 0 | 圖片關(guān)聯(lián)到的文章 ID |
| $post_data | array | 可選 | null | 允許修改附件的一些信息 |
| $overrides | array | 可選 | [] | 允許覆蓋 wp_handle_upload() 的表現(xiàn) |
返回值:
(int|WP_Error)
如果成功,返回附件 ID,如果失敗,返回一個(gè) WP_Error 實(shí)例
示例:
前端表單
<form id="featured_upload" method="post" action="#" enctype="multipart/form-data">
<input type="file" name="my_image_upload" id="my_image_upload" multiple="false" />
<input type="hidden" name="post_id" id="post_id" value="55" />
<?php wp_nonce_field( 'my_image_upload', 'my_image_upload_nonce' ); ?>
<input id="submit_my_image_upload" name="submit_my_image_upload" type="submit" value="Upload" />
</form>
處理上傳的文件
// 檢查 nonce 和用戶權(quán)限
if (
isset( $_POST['my_image_upload_nonce'], $_POST['post_id'] )
&& wp_verify_nonce( $_POST['my_image_upload_nonce'], 'my_image_upload' )
&& current_user_can( 'edit_post', $_POST['post_id'] )
) {
// 如果通過檢查,安全性是沒問題的
// 在前端使用時(shí),需要引入以下3個(gè)文件
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
// 讓W(xué)ordPress處理上傳的文件
// 注意, 'my_image_upload' 是上面表單里的文件字段的name
$attachment_id = media_handle_upload( 'my_image_upload', $_POST['post_id'] );
if ( is_wp_error( $attachment_id ) ) {
// 上傳出錯時(shí)的處理
} else {
// 上傳成功后的處理
}
} else {
// nounxe檢查失敗時(shí)的提示信息
}



強(qiáng)!??!