index.php 页面
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<h2>文件上传</h2>
<hr>
<form action="update.php" method="POST" enctype="multipart/form-data">
<!--上传的类型使用"multipart/form-data-->
<input type="file" name="upd">
<br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
update.php 上传处理
<?php
header("content-type:text/html; charset=utf-8");
echo "<pre>";
print_r($_FILES);
echo "</pre>";
echo "<hr>";
//原文件路径
$dirname=$_FILES['upd']['tmp_name'];
//上传的文件处理
$tmpExt=explode(".", $_FILES['upd']['name']);//文件名用.切割成数组
$ext=array_pop($tmpExt);//上传文件所需要的后缀,抛出.最后出现的字符串
$filename=date("Y-m-d-h-i-s-").mt_rand();//防止文件名重复
$destination="upload/text/{$filename}.{$ext}";//最终的文件
//获取上传文件的类型做归类
$tmpFileNameStype=explode("/", $_FILES['upd']['type']);//文件的类型用/分割成数组
$fileNameStype=array_shift($tmpFileNameStype);//文件类型,抛出/最早出现的字符串
//规定文件类型
$filearr=array("jpg", "exe", "png", "mp4", "txt", "rar", "xlsx", "mp3");
$filesize=$_FILES['upd']['size'];//获取文件大小
//上传路径分类
if($fileNameStype=='text'){
$destination="upload/text/{$filename}.{$ext}";
}else{
$destination="upload/imag/{$filename}.{$ext}";
}
//判定是否符合上传的类型
if($filesize<=500000000){
if(in_array($ext, $filearr)){
if(move_uploaded_file($dirname, $destination)){
echo "上传{$fileNameStype}成功!";
}else{
echo "上传{$fileNameStype}失败!";
}
}else{
echo "上传文件的类型不符合!";
}
}else{
echo "上传的文件过大!";
}
?>
============================================
多文件的上传页面
index.php 页面
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文件上传</title>
</head>
<body>
<h2>文件上传</h2>
<hr>
<form action="update.php" method="POST" enctype="multipart/form-data">
<!-- 如果是多文件上传需要在表单的name后面加[]将其放到一个数组 -->
<input type="file" name="upd[]">
<br><br>
<input type="file" name="upd[]">
<br><br>
<input type="file" name="upd[]">
<br><br>
<input type="file" name="upd[]">
<br><br>
<input type="submit" value="提交">
</form>
</body>
</html>
多文件上传处理
update.php 多文件上传处理
<?php
$files=count($_FILES['upd']['name']);
for($i=0;$i<$files;$i++){
$dirname=$_FILES['upd']['tmp_name'][$i];
$dsdestination='upload/text/'.$_FILES['upd']['name'][$i];
move_uploaded_file($dirname, $dsdestination);
}
?>