2016-06-20 69 views
0

我正在創建一個插件將圖片上傳到媒體庫。WordPress:爲什麼圖像沒有保存在媒體庫中?

但我無法存儲它。幫助理清。

<?php 
    /* 
    Plugin Name: **** 
    */ 
    add_action('admin_menu', 'my_file_upload'); 
    function my_file_upload() { 
      $uploaddir = '/uploads'; 
      $uploadfile = $uploaddir . basename($_FILES['userfile']['name']); 
      echo "<p>"; 
      if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { 
       echo "File is valid, and was successfully uploaded.\n"; 
       } else { 
        echo "Upload failed"; 
       } 
       echo "</p>"; 
       echo '<pre>'; 
       echo 'Hiiiiii'; 
       print_r($_FILES); 
       print "</pre>"; 
       echo"<imgsrc=$_FILES[userfile][tmp_name]>"; 
       ?> 
        <form enctype="multipart/form-data" action="#" method="POST"> 
        Send this file: <input name="userfile" type="file" /> 
        <input type="submit" value="Send File" /> 
       </form> 
      <?php  
       } 
?> 

我一直在努力從過去的幾個小時搜索了很多,但沒有結果:(

+0

你得到的任何錯誤? – Milap

+0

lemme給你看。 文件有效,並且已成功上傳。 陣列 ( [userfile的] =>數組 ( [名稱] => Desert.jpg [型] =>圖像/ JPEG [tmp_name的值] => C:\瓦帕\ TMP \ phpE6D.tmp [錯誤] => 0 [大小] => 845941 ) ) 不過,這並不與此圖像 – Daniel

+0

結帳我的回答以下更新媒體庫。 – Milap

回答

1

可以使用move_uploaded_file功能上傳文件,但它並沒有在WordPress的媒體庫中顯示,因爲文件名字是不存在的數據庫呢,所以你必須使用如下的WordPress功能

PHP:

require_once(ABSPATH . "wp-admin" . '/includes/image.php'); 
require_once(ABSPATH . "wp-admin" . '/includes/file.php'); 
require_once(ABSPATH . "wp-admin" . '/includes/media.php'); 

$attachment_id = media_handle_upload('userfile', $post_id); 
update_post_meta($post_id, '_thumbnail_id', $attachment_id); 

HTML:

<input type="file" name="userfile" id="file-upload" /> 

所以,現在您應該在WordPress媒體中上傳圖片。

+0

它不工作。 :( 其中分配$ POST_ID ??? 既不attachs文件:( – Daniel

+0

'$ post_id' - 媒體與相關聯。如果你不希望這個媒體連接到特定的崗位,你可以通過0. – Milap

+0

沒有它沒有工作,你可以在一個腳本中編寫整個編輯代碼 – Daniel

相關問題