2017-10-01 13 views
0

誰かが、この機能がアップロードされたファイルをどこにも移動しない理由を教えてもらえますか?wordpress wp_handle_uploadファイルを移動しない

function handle_logo_upload($option){ 
    if(!function_exists('wp_handle_upload')) 
{ 

      require_once(ABSPATH .'wp-admin/includes/file.php'); 
            } 


      if(!empty($_FILES["site_logo_custom"])){ 

$theFile=$_FILES["site_logo_custom"]; 

$overrides=array('test_form'=>false); 

$urls=wp_handle_upload($theFile,$overrides); 
$temp=$urls["url"]; 
return $temp; 

            } 


            return $option; 
           } 

私はwp_handle_upload関数についてはあまり気にしません。 Thankss !!!

+0

この機能はどこにありますか?フォームアクションとしてこの関数をどのように実行していますか? –

+0

こんにちはSajjadur、それは私のテーマの関数テンプレートです。これは設定ページのフィールドです。私はしばらくの間、グーグルでチュートリアルでこのアプローチを見つけました。私はjQueryに基づいて他のアプローチを見つけましたが、データのコレクションをPHPのままにしておくことを好みます。 – domjanzsoo

答えて

0

あなたの関数が完全に呼び出されたと推測します。

function handle_logo_upload($option){ 
    if(!function_exists('wp_handle_upload')) 
    { 

     require_once(ABSPATH .'wp-admin/includes/file.php'); 
    } 
    //you are using empty version make sure your php version is higher than 5.2 
    if(!empty($_FILES["site_logo_custom"])){ 
     $move_logo = wp_handle_upload($_FILES["site_logo_custom"], array('test_form' => false)); 
     if ($move_logo && !isset($move_logo['error'])) { 
      $wp_upload_dir = wp_upload_dir(); 
      $attachment = array(
       'guid' => $wp_upload_dir['url'] . '/' . basename($move_logo['file']), 
       'post_mime_type' => $move_logo['type'], 
       'post_title' => preg_replace('/\.[^.]+$/', '', basename($move_logo['file'])), 
       'post_content' => '', 
       'post_status' => 'inherit' 
      ); 
      $logo_attach_id = wp_insert_attachment($attachment, $move_logo['file']); 
      $image_attributes = wp_get_attachment_image_src($logo_attach_id); 
      if ($image_attributes) { 
       return $image_attributes[0]; 
      } 
      else 
      { 
       return $option; 
      } 
     }else{ 
      return $option; 
     } 
    }else{ 
     return $option; 
    } 

}   

+0

こんにちはAkshay、私は少しだけ適切な外観を取るつもりです。ありがとう.. – domjanzsoo

+0

再びあなたに与えられた関数を使って、Arkshayのいくつかの変更が発生しましたが、まだ有用ではありません。私のPHPバージョンは7.1.1です。現在のところ、関数は次の文字列を返します:88974.ngsversion.1463419670135.adapt.676.1.jpg。それはオプションとして保存されているようです。私はget_option( 'site_logo_custom')を使って呼び出すことができます。しかし、私はオプションのデータベーステーブルでそれを見つけることができません。ファイルはまだどこにも移動されません。 – domjanzsoo

+0

$ image_attributes、印刷しますか?その配列に完全なイメージパスを取得していますか? –

1

は、私はあなたのフォームは次のようにちょっとフォーマットされたと仮定したコードで書かれた私のコメントを読んでください:

form action="" enctype="multipart/form-data" method="post"> //action is current post 
<input type="file" name="file"> 
<input type="submit" name="submit"> 
</form> 

と)(wp_handle_uploadを使用してwordpressのアップロードフォルダにファイルをアップロードします。あなたはコードの下で使用するかもしれません。

function handle_logo_upload($file){ 

require_once(ABSPATH.'wp-admin/includes/file.php'); 
$uploadedfile = $file; 

$movefile = wp_handle_upload($uploadedfile, array('test_form' => false)); 

if ($movefile){ 
    echo $movefile['url']; 
    //or return 
    return $movefile['url']; 
    } 

} 
if (isset($_POST['submit'])) { 
    handle_logo_upload($_FILES['file']); 
} 
+0

をチェックしてください。追加のセキュリティチェックをしたい場合は、function.iの内部で簡単に行うことができます。簡単にするためにセキュリティチェックを追加しませんでした。 –

+0

こんにちはSajjadur、私のコードは同じです。私は設定APIで作成されたフォームで使用しています。私の目的は、テーマ設定ページのロゴアップロードボタンを設定することです。 – domjanzsoo

+0

次にwordpress media uploaderを使ってURLを取得し、{prefix} _settingsデータベースに保存します.... –

関連する問題