How to upload files without refreshing web page in PHP

We usually upload files by using form, however, the browser have to refresh web page in this situation. Is there another way to realize this function, but the browser does not refresh page? We say yes, Look at source code below:
1.upload files web page

 <html>
 <head>
 <title>upload files with no web page refresh</title>
 <meta Content-type="text/html" charset="utf-8" />
 <script type="text/javascript">
 function startUpload() {
 document.getElementById('processing').innerHTML = 'loding...';
 return true;
 }
 function stopUpload(rel){
 var msg;
 switch (rel) {
 case 0:
 msg = "";
 case 1:
 msg = "file is too big";
 break;
 case 2:
 msg = "file is not image";
 break;
 default:
 msg = "upload fail";
 }
 document.getElementById('processing').innerHTML = msg;
 }
 </script>
 </head>
 <body>
 <div style="text-align:center">
 <div id="processing"></div>
 <form action="upload.php" method="post" enctype="multipart/form-data" target="form-target" onsubmit="startUpload();">
 <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
 <input type="file" name="myfile" />
 <input type="submit" name="sub" value="upload" />
 </form>
 <iframe style="width:0; height:0; border:0;" name="form-target"></iframe>
 </div>
 </body>
 </html>

2.process upload files
<?php
 $fileTypes  = array('jpg','png','gif','bmp');

$result     = null;
 $uploadDir  = './upfiles';
 $maxSize    = 1 * pow(2,20);

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['sub'])) {
 $myfile = $_FILES['myfile'];
 $myfileType = substr($myfile['name'], strrpos($myfile['name'], ".") + 1);

if ($myfile['size'] > $maxSize) {
 $result = 1;
 } else if (!in_array($myfileType, $fileTypes)) {
 $result = 2;
 } elseif (is_uploaded_file($myfile['tmp_name'])) {
 $toFile = $uploadDir . '/' . $myfile['name'];
 if (@move_uploaded_file($myfile['tmp_name'], $toFile)) {
 $result = 0;
 } else {
 $result = -1;
 }
 } else {
 $result = 1;
 }
 }
 ?>
 <script type="text/javascript">
 window.top.window.stopUpload(<?php echo $result; ?>);
 </script>

, ,