PHP无刷新上传文件实现代码

PHP无刷新上传文件实现代码

index.html
<html>

<head>

<title>无刷新上传文件</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 = "上传成功";

break;

case 1:

msg = "上传的文件超过限制";

break;

case 2:

msg = "只能上传图片文件";

break;

default:

msg = "上传文件失败";

}

document.getElementById('processing').innerHTML = msg;

}

</script>

</head>

<body>

<div >

<div ></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 name="form-target"></iframe>

</div>

</body>

</html>

upload.php

<?php

sleep(2);

$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; ?>);