veo que la mayoría usan un Iframe para la carga del archivo a temporales, y luego se mueve.
Les pongo este ejemplo no usa AJAX, le llamaría File Upload JS + PHP
Código PHP:
<?php
//este upload no usa ajax solo iframe + JS
//comentarios estare atento :D saludos Capa.
if (isset($_POST['name']))
{
$file_name = $_POST['name']; //con este nombre identificams a nuestra archivo file que viene en $_FILES
$file_temp = $_FILES[$file_name]['tmp_name']; //archivo temporal
$file_move = $_FILES[$file_name]['name']; //moveoms el archivo
if (move_uploaded_file($file_temp,$file_move))
{
$file_msg = "archivo <strong>$file_move</strong> en servidos";
} else {
$file_msg = "error, archivo <strong>$file_move</strong> no fue cargado";
}
?>
<script type="text/javascript">
//nombre del campo donde vamos a bloquear los contenidos, en este caso es name_id
parent.document.getElementById('name_id').innerHTML = "<?php echo $file_msg; ?> ";
//alert("<?php echo $file_msg; ?> ");
</script>
<?php
} else {
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>File Upload JS + PHP</title>
<script type="text/javascript">
function upload(objeto)
{
objeto.target = "iframe"; //le agregamos el nombre del iframe, por donde enviara el form
objeto.submit(); //enviamos el form con totod los contenidos
}
</script>
</head>
<body>
<div id="name_id" style="margin:10px;" align="center">
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="upload.php" onsubmit="upload(this); return false;" >
<input type="file" name="file" />
<input name="name" type="hidden" value="file" />
<input name="" type="submit" value="Submit" />
</form>
<iframe style="display:none" name="iframe" src="upload.php" width="400" height="100"></iframe>
</div>
<p align="center"><strong>ahí esta el iframe, que generalmente va invisible con un style display none<br />
espero que les siva, y si haber me sacan la otra duda. del AJAX</strong></p>
</body>
</html>
<?php
}
?>
Bueno…
saludos Capa