您的位置:首页 > 编程语言 > PHP开发

PHP文件上传学习(多文件,ajax无刷新方式)

2017-09-24 20:53 645 查看

上传文件表单mindex.php

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多文件上传举例</title>
</head>
<script type="text/javascript">
window.onload = function(){
var fm =document.getElementsByTagName('form')[0];
fm.onsubmit = function(evt){
var url='./mupload.php?='+Math.random();
var fd = new FormData(this);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function(){
if(xhr.readyState==4){
alert(xhr.responseText);
}
}
xhr.open('post',url);
xhr.send(fd);
evt.preventDefault();
}
}
</script>
<body>
<h1>多文件上传方法</h1>
<form>
<input type="file" name="upload1"><br/><br/>
<input type="file" name="upload2"><br/><br/>
<input type="file" name="upload3"><br/><br/>
<input type="submit" name="submit" value="上传">
</form>
</body>
</html>


对上传文件进行处理的mupload.php

<?php
header('Content-Type:text/html;charset=utf-8');
require 'mconfig.php';  //加载配置文件
foreach ($_FILES as $file) {
$arr_mime = ['image/jpeg','image/png'];
$dir = './upload/';
muploadfile($file,$arr_mime,$dir);
}


配置文件mconfig.php

<?php
function muploadfile($file,$arr_mime,$dir){
$ext = substr($file['name'],strrpos($file['name'],'.'));
// $name = date('YmdHis').'-'.mt_rand(1000,9999).$ext;
$name = date('YmdHis').'-'.uniqid().$ext;
$dir_name = $dir.$name;
if(!is_uploaded_file($file['tmp_name'])){
echo '上传有错误,请重新上传!';
}else{
$fs = finfo_open(FILEINFO_MIME_TYPE);
$mime = finfo_file($fs,$file['tmp_name']);
if(in_array($mime,$arr_mime)){
if(move_uploaded_file($file['tmp_name'],$dir_name)){
echo "上传成功!";
}else{
echo '上传失败!';
}
}else{
echo '文件类型不正确,请重新上传';
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ajax php