sfBrowserBase::doClick() によるファイルアップロード時に MIME-type を指定できるようにするパッチを送った
sfBrowserBase::doClick() によるファイルアップロード時に MIME-type を指定できるようにするパッチを symfony に送った。いやまあ MIME-type 使うとかないわーって話かもしれないけど、空文字列でハードコーディングして POST するほうがもっとないわーって思ったので、かっとなって作った。
http://trac.symfony-project.org/ticket/5748
Index: lib/util/sfBrowserBase.class.php =================================================================== --- lib/util/sfBrowserBase.class.php (リビジョン 14901) +++ lib/util/sfBrowserBase.class.php (作業コピー) @@ -746,7 +746,17 @@ } else if ($nodeName == 'input' && $element->getAttribute('type') == 'file') { - $filename = array_key_exists($elementName, $arguments) ? $arguments[$elementName] : sfToolkit::getArrayValueForPath($arguments, $elementName, ''); + $file = array_key_exists($elementName, $arguments) ? $arguments[$elementName] : sfToolkit::getArrayValueForPath($arguments, $elementName, ''); + if (is_array($file)) + { + $filename = isset($file['name']) ? $file['name'] : ''; + $filetype = isset($file['type']) ? $file['type'] : ''; + } + else + { + $filename = $file; + $filetype = ''; + } if (is_readable($filename)) { @@ -761,7 +771,7 @@ unset($arguments[$elementName]); - $this->parseArgumentAsArray($elementName, array('name' => basename($filename), 'type' => '', 'tmp_name' => $filename, 'error' => $fileError, 'size' => $fileSize), $this->files); + $this->parseArgumentAsArray($elementName, array('name' => basename($filename), 'type' => $filetype, 'tmp_name' => $filename, 'error' => $fileError, 'size' => $fileSize), $this->files); } else if ( $nodeName == 'input'
さすがにチケット作るの 4 回目、パッチ作るの 3 回目ともなるとお手の物ですねもう。英語力は相変わらずだけど!(てか英語間違ってるの気づいて修正したいけど Description 変更権限与えられていないのね><)