Я только что проверил отчет об ошибках PHP, и он утверждал, что это работает в Opera:
<input type="file" name="file" min="1" max="999" />
Но это не так:
<input type="file" name="file[]" min="1" max="999" />
Редактировать: после тестирования этого,Я полагаю, что PHP-специалист, который пометил ошибку как фальшивый, не знал, о чем говорит ... Я не могу найти способ работать с PHP нативно.
Насколько я могу судить, PHP не знаетподдержка «смешанных» загрузок файлов Opera.Это не ошибка со стороны Opera, поскольку они реализуют ее в соответствии со спецификацией RFC.Я считаю, что другие браузеры просто загружают файлы, как если бы было несколько элементов ввода.Вы можете легко добавить поддержку для этого, проверив массив _POST:
$file = $_POST['file'][0];
while (preg_match('/^(-+[A-Za-z0-9]+)\s+/', $file, $matches))
{
$id = $matches[1];
$i = strlen($matches[0]);
$body = false;
$headers = array();
while (($j = strpos($file, "\n", $i)) !== false)
{
$line = substr($file, $i, $j - $i);
$i = $j + 1;
if (trim($line) == '')
{
$body = true;
break;
}
list($key, $val) = explode(':', trim($line), 2);
$headers[$key] = trim($val);
}
if (!$body) break;
$j = strpos($file, $id, $i);
$data = substr($file, $i, $j-$i);
echo $data."<HR>"; // also check $headers
$file = substr($file, $j);
}
В приведенном выше коде могут быть отдельные ошибки.