сделал через ifame
есть форма:
<form id = "formLoad" action="test.php" target="rFrame" method="POST" enctype="multipart/form-data">
<td align = "center">
Фото:<br/>
<input name="loadfile" type="file" size = "10">
<input type="submit" onClick = "createIFrame()" value="загрузить">
<input name="curId" type="hidden" value = "photo_" .$i ."">
</form>
<span id = "photo_" .$i ."">
</span>
функции для загрузки:
function onResponse(d)
{
with(d)
{
eval('var obj = ' + d + ';');
}
//document.getElementById('resUpl').innerHTML = ('Файл ' + obj.filename + (obj.success ? " " : " НЕ ") + "загружен.");
var obj2 = document.getElementById(obj.id);
var masFName = obj.filename;
obj2.innerHTML = masFName;
//var mas_remove = document.getElementById('forFrame');
//mas_remove.innerHTML ="";
}
function createIFrame()
{
var div = document.createElement('div');
div.getAttribute('id');
div.setAttribute('id','forFrame')
var masNframe = Math.floor(Math.random());
div.innerHTML = "<iframe id=\"rFrame\" name=\"" + masNframe + "\" style=\"display: none\"></iframe>";
document.getElementById('formLoad').setAttribute('target', masNframe);
document.body.appendChild(div);
}
<?php
function jsOnResponse($obj)
{
echo '
<script type="text/javascript">
window.parent.onResponse("'.$obj.'");
</script>
';
}
$dir = 'img/';
$name = basename($_FILES['loadfile']['name']);
$file = $dir .$name;
if($success = move_uploaded_file($_FILES['loadfile']['tmp_name'], $file))
{
jsOnResponse("{'filename':'" . $name . "', 'success':'" . $success . "', 'id':'" .$_POST['curId'] ."'}");
}
else
{
echo "загрузка не удалась";
}
?>
в ie все загружается нормально, опера загружать отказывается. событие onSubmit в опере тож не срабатывает, повесил onclick На кнопку. Фрейм создается и на этом процесс останавливается. Что я сделал не так?