почитайте эту статью. должна помочь
хабрахабр
вот еще
вот пример из статьи. работает,кстати. щас у себя проверил
<html>
<head>
<script type="text/javascript">
function onResponse(d) {
eval('var obj = ' + d + ';');
alert('Файл ' + obj.filename + (obj.success ? " " : " НЕ ") +
"загружен.");
}
</script>
</head>
<iframe id="rFrame" name="rFrame" style="display: none">
</iframe>
<form action="handler.php" target="rFrame" method="POST"
enctype="multipart/form-data">
<input type="file" name="loadfile">
<input type='submit' value='Загрузить'>
</form>
</html>
handler.php :
<?php
function jsOnResponse($obj)
{
echo '
<script type="text/javascript">
window.parent.onResponse("'.$obj.'");
</script>
';
}
// поставить тут *!*./*/!* , если используется windows,а не линукс
$dir = '/home/path/path/path';
$name = basename($_FILES['loadfile']['name']);
$file = $dir . $name;
$success = move_uploaded_file($_FILES['loadfile']['tmp_name'], $file);
jsOnResponse("{'filename':'" . $name . "', 'success':'" . $success . "'}");
?>