MediaPluginでファイルアップロードを行う場合、XAMPP等のWindows環境ではうまく保存されないことが分かりました。
Windowsで保存を試みますと、mkdir()でエラーが出る他、「webroot/media/filter/(version name)/transfer/img/(file name)」でファイルが保存できません。
原因は非常に単純で、上記パスが、「transfer/img」以外の場所のDSはOSにしたがったもの(つまりWindowsは「¥」)であるのに対し、該当箇所が「/」になっていているために正しく格納ができなくてエラーが出るようです。これを修正するためには、「plugin/media/models/behavior/media.php」の161行付近を次のように修正します。
■修正前のコード
$dirname = substr(str_replace( str_replace('\\', '/', $baseDirectory), null, str_replace('\\', '/', Folder::slashTerm($File->Folder->pwd())) ), 0, -1);
■修正後のコード
$dirname = substr(str_replace( str_replace('\\', DS, $baseDirectory), null, str_replace('\\', DS, Folder::slashTerm($File->Folder->pwd())) ), 0, -1);
ちなみに現在開発が進んでいると思われる1.3版はここの仕組みが若干違いますが、似たような対策は必要かと思います。
なお、この修正方法が正しいかどうかは分かりません。というのは、結局のところ「¥だった場合に¥に」リプレースしているため、意味がないように思うからです。おそらく「/」と「¥」が混在した場合に統一するための仕組みのようにも思えますが、もう少し改良が必要だった、というわけですね。
同様の理由で、一般的にパスやディレクトリを指定する場合に「¥」と「/」が混在しているとうまく動きませんので気をつけましょう。極力DSを使った方がよいと思います。