web-dev-qa-db-ja.com

ajaxでwp_handle_uploadを使用しようとしています

私は このチュートリアル を使ってAjaxでオプションページフォームを作成しました。

今、私は画像をアップロードするためにwp_handle_uploadを使いたいです。私はこれを試した http://Pastebin.com/35HW8RSZ が成功しなかった。

助けていただければ幸いです。アサフ。

1
Asaf Chertkoff

私はここで非常に単純な解決策 を見つけました 。私の考えでは、それはあらゆる外部のAjaxソリューションを上回ります。

1
Asaf Chertkoff

wp_handle_uploadを動作させるにはいくつかのファイルを含める必要があります。そのための関数があります。

function My_wp_handle_upload($file_handler,$overrides) {

  // check to make sure its a successful upload
  if ($_FILES[$file_handler]['error'] !== UPLOAD_ERR_OK) __return_false();

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

  $upload = wp_handle_upload( $file_handler, $overrides );
  return $upload ;
}

そのため、この関数をファイルに追加した後は、呼び出しを次のように変更してください。

$file = wp_handle_upload($data['MoobLogoUpload'], $overrides);

に:

$file = My_wp_handle_upload($data['MoobLogoUpload'], $overrides);

更新

以下のようなajaxアップロードソリューションを使用する必要があることを思い出してください。

  • JQureyフォームプラグイン
  • 更新する
  • SWFアップロード

ブラウザのXMLHttpRequestオブジェクトを使用してファイルをアップロードすることはできないため、その他のもの、またはiframeによる送信

2
Bainternet