サポート » バグ報告と提案 » xmlrpc/metaWeblog.newMediaObjectのwp_handle_uploadフックの動作について。

  • 解決済 jyoshida

    (@jyoshida)


    xmlrpc経由でファイルをアップロードしたときにwp_handle_uploadフックを使ってmime-typeを変更しようとしても、上手いこと行きません。
    xmlrpc の場合は、xmlrpc.phpのwp_xmlrpc_server::mw_newMediaObject()で独自処理をしているようで、そこでは、
    1. ファイルのパスを示すであろう $file[‘file’] の値がbasename()されたファイル名が渡されてる。そのため、フック関数でファイルにアクセスできない。
    2. wp_insert_attachment()の後にapply_filters()を読んでいるのでフック関数で値を変更してもデータベースには反映されない。

    Windows Live WriterがJPEGファイルをアップロードするときにmetaWeblog.newMediaObjectのtypeをapplication/octet-streamで渡して来ます。2.5RC1のメディアライブラリで見ると、画像のサムネイルが表示されないので微妙に気持ち悪かったので調べてみました。
    2.2.3MEのソースも合わせて確認したのですが2.5RC1も2.2.3MEもxmlrpc.phpのwp_xmlrpc_server::mw_newMediaObject()同じでした。

    バグなのか仕様なのか分かりませんが、wp_handle_uploadフックの意味がxmlrpc経由場合だけ無くなってしまう気がします。ダッシュボード経由だとwp_handle_uploadのフックはちゃんと動きます。

    確認した環境: 2.2.3ME/2.5RC1 (フォームのバージョン欄では英字が使えないらしいので追記)

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック投稿者 jyoshida

    (@jyoshida)

    2.5のソースでパッチを作りました。
    http://wordpress.pastebin.ca/965849

    トピック投稿者 jyoshida

    (@jyoshida)

    tarcを見てみたら、1.に対しては一度修正された模様( http://trac.wordpress.org/ticket/3395 )。
    ただし、現在はまた修正前に戻っている。
    2.関しては言及はされていなかったので新しくチケットを発行しました。( http://trac.wordpress.org/ticket/6559 )

    トピック投稿者 jyoshida

    (@jyoshida)

    発行したチケットにマイルストーン2.6が設定されてました。

    トピック投稿者 jyoshida

    (@jyoshida)

    チケットのマイルストーンが2.9に設定されていました。
    XML-RPCの改良と合わせて対応するのかもしれません。

    バージョンアップの度にパッチをあて回るのにも疲れました。
    消極的な対応ですが、Wordpress自体を使うのをやめることで解決ということします。

    モデレーター IKEDA Yuriko

    (@lilyfan)

    チケットのマイルストーンが2.9に設定されていました。
    XML-RPCの改良と合わせて対応するのかもしれません。

    XML-RPC の改良は 2.9 に延期されたんでしたっけ??

    消極的な対応ですが、Wordpress自体を使うのをやめることで解決ということします。

    WordPress の XML-RPC まわりは、実装がいい加減な気がするので、XML-RPC をメインに使うなら WordPress を避ける、というのは仕方ないかもしれません……。

    トピック投稿者 jyoshida

    (@jyoshida)

    XML-RPC の改良は 2.9 に延期されたんでしたっけ??

    根拠はありません。
    2.9の開発が進むことでさらにこのチケットのマイルストーンは先に延ばされるかもしれません。
    逆に、XML-RPCの改良により2.9より前に解決されるかもしれません。
    ただ、積極的にこのチケットに対する修正は行われないと思います。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「xmlrpc/metaWeblog.newMediaObjectのwp_handle_uploadフックの動作について。」には新たに返信することはできません。